-- ******************单行函数-通用函数***********
SELECT col1,nvl(col2,'1111') FROM t_nvl;
insert into t_nvl(col2,col3) values(' ', ''); -- 插入空格
insert into t_nvl(col2,col3) values('', 5); -- 插入空字符串
insert into t_nvl(col2,col3) values(null, 6); -- 插入NULLSELECT * FROM t_nvl;
-- 1.nvl(exp1,exp2),等价于mysql的ifnull
SELECT col1,NVL(col2,'我是null'),col3 FROM t_nvl;-- 2.nvl2(exp1,exp2,exp3),nvl2(col2,col2,'我是null')等价于NVL(col2,'我是null')
SELECT col1,nvl2(col2,col2,'我是null'),col3,NVL2(to_char(col_number),to_char(col_number+1),'没有部门aa') FROM t_nvl;-- 3.nullif(exp1,exp2),如果exp1和exp2相等则返回null,不相等返回exp1
SELECT nullif(col_number,999) FROM t_nvl;-- 4.coalesce(exp1,exp2,exp3,exp4,...),exp1为null返回exp2,exp2为null返回exp3,直到返回不为空为止
-- 注意:exp1,exp2,exp3,exp4里面的值类型要一样,否则报错
SELECT COALESCE(to_char(col_number),col3,col2,col1) val FROM t_nvl;-- 5.if-then-else:1.case表达式;2.decode函数
-- case
SELECT CASE col_number WHEN 999 THEN col_number+1
WHEN 888 THEN col_number+2
ELSE col_number END
FROM t_nvl;-- decode
SELECT DECODE(col_number,999,9999,
888,8888,
777,7777,
000)
FROM t_nvl;
oracle-单行函数-通用函数
最新推荐文章于 2024-06-16 23:17:00 发布