神奇的 SQL 之 CASE表达式,妙用多多 !

  历史考试选择题:黄花岗起义第一枪谁开的? A宋教仁 B孙中山 C黄兴 D徐锡麟,考生选C。

  又看第二题:黄花岗起义第二枪谁开的? 考生傻了,就选了个B。

  接着看第三题:黄花岗起义中,第三枪谁开的? 考生疯了,胡乱选了A。

  考试出来就去找出卷老师。老师拿出课本说:黄兴连开三枪,揭开了黄花岗起义的序幕。考生:......

神奇的 SQL 之 CASE表达式,妙用多多 !

CASE表达式 之概念

  相信大家都用过CASE表达式,尤其是做一些统计功能的时候,用的特别多,可真要说什么是 CASE表达式,我估计还真没几个人能清楚的表述出来。CASE表达式和 “2+1” 或者 “120/3” 这样的表达式一样,是一种进行运算的功能,正如CASE(情况)这个词的含义一样,用于区分情况,在有条件分歧的时候使用它。CASE表达式是从 SQL-92 标准开始被引入的,可能因为它是相对较新的技术,所以尽管使用起来非常便利,但其真正的价值却并不怎么为人所知。很多人不用它,或者用它的简略版函数,例如 DECODE(Oracle)、IF(MySQL)等。然而,CASE表达式也许是 SQL-92 标准里加入的最有用的特性,如果能用好它,那么 SQL 能解决的问题就会更广泛,写法也会更加漂亮,而且,因为 CASE表达式 是不依赖于具体数据库的技术,所以可以提高 SQL 代码的可移植性。

  基本格式如下

-- 简单 CASE表达式 CASE 列(或表达式) WHEN <匹配值1> THEN <表达式> WHEN <匹配值2> THEN <表达式> ...... ELSE <表达式> END -- 搜索 CASE表达式 CASE WHEN <判断表达式> THEN <表达式> WHEN <判断表达式> THEN <表达式> WHEN <判断表达式> THEN <表达式> ...... ELSE <表达式> END -- 简单 CASE表达式 示例 CASE sex WHEN '1' THEN '' WHEN '2' THEN '' ELSE '其他' END -- 搜索CASE表达式 示例 CASE WHEN sex = '1' THEN '' WHEN sex = '2' THEN '' ELSE '其他' END

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjsjd.html