oracle函数相关
1.nvloracle的nvl函数的用法通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值 select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1这里关心的nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value 如: NVL(a,b)就是判断a是否是NULL,如果不是返回a的值,如果是返回b的值 通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值另一个有关的有用方法 declare i integer select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1这样就可以把获得的合计值存储到变量i中,如果查询的值为null就把它的值设置为默认的1
2.rownum
rownum是oracle预处理字段,默认标序是1,只有记录集已经满足条件后才会进行后续编号。例如:select rownum,tb.* from tb where rownum>1
3.to_number
To_number函数的格式如下:To_number(varchar2 or char,’format model’)To_number函数中也有很多预定义的固定格式:9代表一个数字0强迫0显示$显示美元符号L强制显示一个当地的货币符号.显示一个小数点,显示一个千位分隔符号下面是一些转换的例子:SQL> select to_number(’RMB234234.4350′,’L999999.0000′) from dual;TO_NUMBER(’RMB234234.4350′,’L999999.0000′)——————————————234234.435另一个例子是:SQL> select to_number(’$123,233,455,623.3400′,’$999,999,999,999.0000′) from dual;TO_NUMBER(’$123,233,455,623.3400′,’$999,999,999,999.0000′)———————————————————-1.2323E+11
4.to_char
select to_char(to_date('1983-12-11','YYYY-MM-DD'),'DD') from dual;select to_char(sysdate,'YYYY/MM/DD') from dual;
5.to_date
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;select to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-02-01','yyyy-mm-dd') from dual;
6.Trunc
截取函数并不改变数据类型,即date截取以后还是date,char截取以后还是char.
TRUNC(date,format)TRUNC(date,''format'')未指定format时,将日期截为12 A.M.,不考虑是否在中午之前的条件。且使用精确符,如:select trunc(SYSDATE,'dd') from dual;精确到天以下语句可证明类型不变:select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') from dualminusselect trunc(SYSDATE,'dd') from dual;结果是空的。TRUNC(for number)TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。其具体的语法格式如下TRUNC(number[,decimals])其中:number 待做截取处理的数值decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分下面是该函数的使用情况:TRUNC(89.985,2)=89.98TRUNC(89.985)=89TRUNC(89.985,-1)=80注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。
举例:对数字,日期进行的 SQL> select trunc(sysdate) from dual; TRUNC(SYSD ---------- 07-1月 -03 SQL> select trunc(sysdate,'mm') from dual; TRUNC(SYSD ---------- 01-1月 -03 SQL> select trunc(sysdate,'yy') from dual; TRUNC(SYSD ---------- 01-1月 -03 SQL> select trunc(234.5565) from dual; TRUNC(234.5565) --------------- 234 SQL> select trunc(sysdate,'D') from dual; TRUNC(SYSD ---------- 05-1月 -03 ////////////////////////////////////////////////////////////////////////////select trunc(sysdate ,'dd') from dual ; -- 2007-9-19select trunc(sysdate ,'yyyy') from dual ; --2007-1-1select trunc(sysdate ,'mm') from dual ; --2007-9-1
页:
[1]