SQL 中CASE WHEN 使用

SQL 中CASE WHEN 使用

一、使用场景:

【场景】:数据库中某列包含 NULL 、‘1’、‘2’,其中‘1’代表男,‘2’代表女

【背景】:希望通过SQL查询出来的是‘’,男,女=》直接转换后的

姓名sexage
张三Null32
李四125
王五267
赵六六45
吴七98
宋八一323

二、CASE WHEN 公式

【公式一】:

CASE 表达式或字段
WHEN1 THEN 语句1;
WHEN2 THEN 语句2;
...ELSE 语句n;ENDCASE;

【公式二】:

CASE 
WHEN 条件1 THEN 语句1;
WHEN 条件2 THEN 语句2;
...ELSE 语句n;ENDCASE;

CASE WHEN 使用

【说明】:因为我要将性别代码转换成汉字,同时汉字的保留,并且NULL转换成空字符串,同时代码3为错误代码要将其转换成空字符串。

【写法】:

SELECT NAME,CASE
		sex IS NULL THEN '' 
			WHEN sex = '1' THEN '男' 
			WHEN sex = '2' THEN '女' 
			WHEN sex = '3' THEN'' 
			ELSE sex 
		END ) sex 
FROM
	person_table

【理解】:当WHEN后的条件为true时将值赋值成THEN后面的值,否则都不匹配赋值成ELSE后的

注意

【注】:这里有一点需要注意,因为NULL和’1’、‘2’、'3’不属于同一类型,故 IS NULL 不能写在 WHEN后面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值