1、NVL(X,VALUE)函数:如果X为空,返回value,否则返回X
select NVL('','空') from dual;
结果:空
2、NVL2(X,value1,value2)函数:如果x非空,返回value1,否则返回value2
select NVL2('X','value1','value2') from dual;
结果:value1
3、NULLIF(expr1,expr2)函数:比较expr1和expr2的值,相等返回null,否则返回expr1.其中expr1不能为null。
select NULLIF('ABC','A') from dual;
结果:ABC ——在逻辑上相当于case语句:case when expr1=expr2 then null else expr1 end
4、coalesce(exp1,exp2,…)函数:返回第一个非空值,假设都是空值,则返回空值,表达式最少是两个,各参数或 表达式数据类型必须一致。
select coalesce(null,1,2) from dual;
结果:1
5、Greatest(n1,n2……n)函数:取一个一维数组中最大值
SELECT Greatest('c','d','a','b') a from dual
结果:d
6、least(n1,n2……n)函数:取一个一维数组中最小值
SELECT least('c','d','a','b') a from dual
结果:a
7、DECODE(input_value,value,result[,value,result…][,default_result])函数:其中:把input_value与后面的每 个value进行比较,如果匹配返回相应的result。如果没有发生匹配,则返回default_result,如果没有default_result则返回 null。对应一个空的返回值,可以使用关键字NULL与之对应。
select decode(2,1,'一',2,'二') from dual;