ORACLE常用结构和函数使用方法总结
2012-01-06 16:45
766 查看
ORACLE常用结构和函数使用方法总结
在学习oracle的过程中,遇到一些常用的函数或结构,下面做一个简单的总结。With用法:
The WITH query_name clause lets you assign a name to a subquery block. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle optimizes the query by treating the query name as either an inline view or as a temporary table.
#div_code img{border:0px;}
WITH <alias_one> AS
(subquery_sql_statement),
<alias_two> AS
(sql_statement_from_alias_one)
SELECT <column_name_list>
FROM <alias_one>, <alias_two>
WHERE <join_condition>;
例子:
#div_code img{border:0px;}
with
sql1 as (select to_char(a) s_name from test_tempa),
sql2 as (select to_char(b) s_name from test_tempb where not exists ( select s_name from sql1 where rownum=1))
select * from sql1
union all select * from sql2
Decode用法:
Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default;
#div_code img{border:0px;}
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值
例子:
#div_code img{border:0px;}
SELECT DECODE(Status,0,'未预定'1,'已预定',2,'已入库') AS status
FROM Stocks
//分析:
当Status=0时,将"未预定"赋值
当Status=1时,将"已预定"赋值
当Status=2时,将"已入库"赋值
NVL()函数:
NVL(ARG,VALUE)达标如果前面的ARG值为NULL那么返回的值为后面的VALUE
#div_code img{border:0px;}
NVL(eExpression1, eExpression2)
eExpression1 和 eExpression2 可以是任意一种数据类型;
DECODE与NVL结合使用:
#div_code img{border:0px;}
DECODE(NVL(ChangeNum,''),'','-',ChangeNum)
//分析:
首先判断ChangeNum是否为空.若为空赋空值[NVL函数]
其次,判断取出的字段是否为空,如果是则赋'-'
最后的默认处理是ChangeNum。
LPAD和RPAD的用法:
#div_code img{border:0px;}
lpad( string1, padded_length, [ pad_string ] )
其中string1是需要粘贴字符的字符串
padded_length 是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成padded_length;pad_string是个可选参数,如果这个参数未写,lpad函数将会在string1的左边粘贴空格。
#div_code img{border:0px;}
select lpad('tech',2) from dual
返回值:t
eselect lpad('tech', 8, '0') from dual
返回值:0000tech
TRUNC用法:
#div_code img{border:0px;}
TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式:TRUNC(date[,fmt])
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
#div_code img{border:0px;}
TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))
=’24-Nov-1999 12:00:00 am’
TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’))
=’24-Nov-1999 08:00:00 am’
另一种用法
#div_code img{border:0px;}
TRUNC(for number)
TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
其具体的语法格式:TRUNC(number[,decimals])
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
#div_code img{border:0px;}
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
注:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记.
本文出自CUUG
相关文章推荐
- Oracle常用结构或函数使用笔记一
- ThinkPHP常用单字母函数(快捷方法)使用总结
- 让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码
- 常用的oracle函数使用说明(一)
- android学习笔记---android常用的软件布局方式,使用方法总结
- [C/C++基础] C语言常用函数memset的使用方法
- jQuery中常用的函数方法总结
- oracle常用函数以及调用入参为record的存储过程的方法,
- Javascript中字符串相关常用的使用方法总结
- jQuery中常用的函数方法总结
- mysql截取函数常用方法使用说明
- ThinkPHP单字母函数(快捷方法)使用总结
- Linq To Sql常用方法使用总结
- oracle常用函数总结
- qt常用函数在PYQT中的使用方法
- ThinkPHP单字母函数(快捷方法)使用总结
- 常用oracle函数使用实例
- 110个oracle常用函数总结
- oracle使用总结(三)常用命令
- 收集常用的Python 内置的各种字符串处理 函数的使用方法