TO_CHAR
对日期的处理
SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;
decode与case when then对比
decode(s4.ktzt, '1', 'a','2','b','3','c','4','d', '未提交')
等同于 case s4.ktzt when '1' then 'a' when '2' then 'b' when '3' then 'c' when '4' then 'd' else '' '未提交';
NVL(expr1,expr2)
expr1:可为空的字段或者表达式。expr2:null的替代值;
NVL2(expr1,expr2, expr3)
含义:若第一个参数为空,则显示三个参数的值;若第一个参数不为空,则显示第二个参数的值。
NULLIF(exp1,expr2)
含义:如果第一个参数和第二个参数相等,则显示空;否则显示第一个参数的值。
COALESCE (expression_1, expression_2, ...,expression_n)
含义:依次参考各参数表达式,遇到非null值即停止并显示该值。如果所有的表达式都是空值,最终将显示一个空值。
行转列函数:
j将结果集转化为a,b,c格式
select to_char(wm_concat(xx0301id)) from xx0301 where dwmc in ('hyf院系','化学与环境学院','化学系')
使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用)
例:
select listagg(xx0301id,',') WITHIN GROUP (order by xx0301id) xx0301id from xx0301 where dwmc in ('hyf院系','化学与环境学院','化学系')