sql查询学习随手记-case when

SQL语句
395
0
0
2022-05-28
标签   SQL语句

目前处在边用边学的过程中,所以随手记一些学到的东西。

case函数的使用教程看过很多,一般都是这样的:

case

when ‘1’ then ‘男’

when ‘2’ then ‘女’

else null end

或是这样的:

case

when score>80 then ‘优秀’

when score<60 then ‘不及格’

else ‘中间’ end

诸如此类,反正都是基于单个字段的查询,但近期有用到一个查询,编成教材可能如下:

表1

name ID

赵 1001

钱 1002

孙 1003

表2

ID A_id B_id C_id

1001 1377 null null

1002 null 74 null

1003 null null 10978

表3

ABC_id sarlay

1377 6000

74 5000

10978 12000

已知姓名,要查询其对应的sarlay,于是写了一下:

case

when A_id is not null then A_id

when B_id is not null then B_id

when C_id is not null then C_id

else null end

执行无误。原来使用case函数可以不局限于单个字段。在网上能找到的大多数教程中,这一点还真是不常见到,分享给大家。

另,我用的是mysql,大家如有不同意见,还请指正。