目前处在边用边学的过程中,所以随手记一些学到的东西。
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,大家如有不同意见,还请指正。