星期五, 三月 13, 2009

zz case语句两个常用用法

http://blog.csdn.net/zshengli/archive/2008/10/28/3166002.aspx
用法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>60 and z<80>80 and z<100 then '优秀' else '成绩无效' from table_v

同样第三列也是无名列,可以用用法一中的办法为其取名。



总结:case的这两种用法都很实用,了解了它的用法后可以用它去处理一些比较复杂的逻辑。要记住的是,这两种case用法最终都返回了一个值,就像一个有返回值的方法一样,所以它不能单独执行。
发表

没有评论: