oracle-单行函数-通用函数

本文详细介绍了Oracle SQL中的单行函数,包括NVL、NVL2、NULLIF、COALESCE及条件函数的使用方法,通过实例展示了如何处理NULL值和进行条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- ******************单行函数-通用函数***********
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); --  插入NULL

SELECT * 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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值