Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
         WHEN sex = '2' THEN '女'
ELSE '其他' END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。 
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
--比如说,下面这段SQL,你永远无法得到“第二类”这个结果
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类'
         WHEN col_1 IN ('a')       THEN '第二类'
ELSE'其他' END
下面我们来看一下,使用Case函数都能做些什么事情。 
一,已知数据按照另外一种方式进行分组,分析。 
有如下数据:(为了看得更清楚,我并没有使用国家代码,而是直接用国家名作为Primary Key)
| 国家(country) | 人口(population) | 
| 中国 | 600 | 
| 美国 | 100 | 
| 加拿大 | 100 | 
| 英国 | 200 | 
| 法国 | 300 | 
| 日本 | 250 | 
| 德国 | 200 | 
| 墨西哥 | 50 | 
| 印度 | 250 | 
根据这个国家人口数据,统计亚洲和北美洲的人口数量。应该得到下面这个结果。
| 洲 | 人口 | 
| 亚洲 | 1100 | 
| 北美洲 | 250 | 
| 其他 | 700 | 
想要解决这个问题,你会怎么做?生成一个带有洲Code的View,是一个解决方法,但是这样很难动态的改变统计的方式。 
如果使用Case函数,SQL代码如下:
按 Ctrl+C 复制代码
    有不懂的,或者更好的见解可以随时交流!每天都会看的。
                    
                
                
            
        
浙公网安备 33010602011771号