【Oracle】常用函数总结

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u013046597/article/details/84993200

一、前言

有那么一段时间,确切的是有近一年的时间,没有总结什么。总觉的简单的东西不想写了,如果不深奥,不高级,不系统就不写,就这样,近一年的时间我似乎没有研究什么新技术,但也确实实践了很多之前没有用过的东西,不过似乎不算深入,说来羞愧的不行。不过现在想想记录下自己之前用过的哪怕一点点简单的东西,也代表自己走过的痕迹了吧,当回忆的时候想想自己曾经记录过,也是值得的吧。下面记录几个之前用过的简单的Oracle函数吧

1.nvl()

nvl(a,b)代表如果a为null则返回b,比如之前处理过一些历史数据,当table1的某个字段为空,我们处理下根据其他表的信息来更新这个字段不为null,比如我要更新一个表的创建时间

update table1
set
    table1.CREATED_TIME= nvl(table1.CREATED_TIME,(select table2.CREATED_TIMEfrom table2 where resId= table1.id)) 
    ht.UPDATED_TIME = sysdate
where table1.CREATED_TIME is null

2.decode()

decode函数相当于if-then-default.

DECODE(value, if1, then1, if2,then2, if3,then3, . . . default)

Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。

比如,我要查询某个字段值,字段名称为居室,数据库中存储的数字,我要重新匹配为我需要的值。 

select DECODE( t1.BED_ROOMS,0,'零居',null,'零居',1,'一居',2,'二居',3,'三居',4,'四居','五居及以上') AS bedRooms from table1 t1 

3.to_char()

(1)日期转换,to_char(date,'格式')

select to_date('2018-12-14','yyyy-MM-dd') from dual;
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

(2)处理数字:to_char(number,'格式')

select to_char(88877) from dual;
select to_char(1234567890,'099999999999999')  from dual;
select to_char(12345678,'999,999,999,999')  from dual;
select to_char(123456,'99.999')  from dual;
select to_char(1234567890,'999,999,999,999.9999')  from dual;
select TO_CHAR(123,'$99,999.9') from dual;
…………

 4sign()

比较大小函数

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 ,例如: 

SELECT "SIGN"(10-8) FROM dual;

返回1

简简单单

……

猜你喜欢

转载自blog.csdn.net/u013046597/article/details/84993200