Oracle 函数

Oracle NVL 函数   https://enhancer.io/

语法 :NVL( string1, replace_with)

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。

oracle中if/else功能的实现的3种写法  参考 oracle中if/else功能的实现的3种写法
第一种:if /else

第二种 :Oracle DECODE函数

语法:DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
功能:如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。

这里的if、then及else 都可以是函数或计算表达式

第三种:case when

 CASE
       WHEN value = -1
            THEN   '111'
       WHEN value = 30
            THEN  '222'
        ELSE '333'
  END                                     AS column_name,

 1、以CASE开头,以END结尾 
2、分支中WHEN 后跟条件,THEN为显示结果 
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加 
4、END 后跟别名

Oracle TO_DATE()函数

 语法:TO_DATE(datestr,'DD/MM/YYYY')  前者是字符串,后者是转换日期格式。前后两者要以一对应。

如:select to_date('2019-03-19 13:34:43', 'yyyy-mm-dd hh24:mi:ss') from dual; 将得到具体的时间

Oracle TO_CHAR()函数

语法:TO_CHAR(date,'yyyy-mm-dd hh24:mi:ss') 前者是日期,后者是转换日期格式。前后两者要以一对应。

如:select TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss') from  dual;
       select TO_CHAR(sysdate,'DD/MM/YYYY') from  dual;

Oracle listagg()函数 行转列函数

语法:listagg (T.COLUMN_NAME, ',') WITHIN GROUP (ORDER BY T .COLUMN_NAME) 

把符合条件的 COLUMN_NAME 以 ',' 为分隔符 

参考 oracle 的列转行函数 listagg()   oracle的 listagg() WITHIN GROUP ()函数使用

with as 

参考 SQL With As 用法

字符串函数  substr()函数

语法    substr(strings|express,m,[n])

strings|express 被截取的字符串或字符串表达式 m 从第m个字符开始截取    n 截取后字符串长度为n

如: select substr('hello',2,3) from dual;  查询结果: 'ell'

Oracle 字符串连接符 ||

如:select  'hello' || 'world' from dual;   查询结果: helloworld

nlssort函数:设置中文的排序方式

--使用拼音排序
select * from table order by nlssort(column, 'NLS_SORT=SCHINESE_PINYIN_M');
--使用笔画排序
select * from table order by nlssort(column, 'NLS_SORT=SCHINESE_STROKE_M');
--使用偏旁部首排序
select * from table order by nlssort(column, 'NLS_SORT=SCHINESE_RADICAL_M');

 

 

 

posted on 2019-03-19 17:00  dreamstar  阅读(79)  评论(0编辑  收藏  举报