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
字符串函数 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');