关于case语句的用法,在网上到处都是,我再发表一篇,主要是为了自己学习,也希望偶尔能给哪位带来方便。
用法1:
case 字段 when '值1' then '结果1'
when '值2 'then '结果2'
else '结果3'
end
说明:这种用法跟C#的switch语句的功能有点相似,通过判断‘字段’不同值返回对应的‘结果’。
它在select语句中用得比较多,如:
select x,y,case z when '1' then '假' when '0' then '真' from table_v
这语句查询出来第三列会是无名列,可以这样为它取名:
select x,y,case z when '1' then '假' when '0' then '真' as 'new_z' from table_v
用法2:
case when 表达式1 then '结果1'
when 表达式2 then '结果2'
else '结果3'
end
说明:这也是很常用的用法,如:
select x, y , case when z>0 and z<60 then '不及格' when z>60 and z<80 then '良好' when z>80 and z<100 then '优秀' else '成绩无效' from table_v
同样第三列也是无名列,可以用用法一中的办法为其取名。
总结:case的这两种用法都很实用,了解了它的用法后可以用它去处理一些比较复杂的逻辑。要记住的是,这两种case用法最终都返回了一个值,就像一个有返回值的方法一样,所以它不能单独执行。