MySQL中IF()、IFNULL()、NULLIF()、ISNULL()、CASE函数的使用详解

本文讲述了SQL中的条件函数,如IF用于条件选择,IFNULL处理NULL值,NULLIF判断是否相等并返回NULL,ISNULL检测NULL,以及CASE函数的用法,适用于数据处理中的逻辑判断。

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

1、IF()函数的使用

IF函数根据判断条件是否成立进行选择执行,成立时执行一条语句,不成立时执行另一条语句

语法结构:

IF(condition, value_if_true, value_if_false)

参数说明

condition: 判断条件

value_if_true: 如果condition的结果为TRUE,返回该值

value_if_false: 如果condition的结果为FALSE,返回该值

举例:

SELECT id, name,
       IF(age<18,'未成年','成年')AS '是否成年'
FROM student;

2、IFNULL()函数的使用

IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

SELECT   IFNULL(1,0);  -- 输出结果:1   
SELECT   IFNULL(NULL,10); -- 输出结果:10   
SELECT   IFNULL(1/0,10);  -- 输出结果:10   
SELECT   IFNULL(1/0,'yes'); -- 输出结果:'yes' 
SELECT   IFNULL(NULL,'B');    -- 输出结果:B
SELECT   IFNULL('Hello','B'); -- 输出结果:Hello

3、NULLIF()函数的使用

NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

SELECT NULLIF('A','A');     -- 输出结果:null
SELECT NULLIF('A','B');     -- 输出结果:A

4、ISNULL()函数的使用

ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

SELECT ISNULL(NULL);        -- 输出结果:1
SELECT ISNULL('HELLO');     -- 输出结果:0

5、CASE函数的使用

语法结构1:

CASE 
  WHEN expr1
  THEN value1
  WHEN expr2
  THEN value2
  ...
  ELSE valueN
END

CASE表示函数开始,END表示函数结束。如果expr1成立,则返回value1,如果expr2成立,则返回value2,当全部不成立则返回valueN,而当有一个成立之后,后面的就不执行了。

举例:

SELECT CASE 
  WHEN 1 > 0
  THEN '1 > 0'
  WHEN 2 > 0
  THEN '2 > 0'
  ELSE '3 > 0'
  END
#输出结果:1 > 0

语法结构2:

CASE expr 
  WHEN e1 THEN value1
  WHEN e2 THEN value2
  ...
  ELSE valueN
END

如果表达式expr的值等于e1,返回value1;如果等于e2,则返回value2。否则返回valueN

举例:

SELECT CASE xfflag 
  WHEN 1 THEN '结算账目'
  WHEN 2 THEN '消费账目'
ELSE '类型不对'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小王子呀

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值