CASE WHEN 函数
--Case函数: --有两种格式: -- 1.简单Case函数。 -- 2.Case搜索函数。 --1.简单Case函数: -- CASE [COLUMN_NAME] -- WHEN ['条件参数'] THEN ['COLUMN_NAME/显示内容'] -- WHEN ['条件参数'] THEN ['COLUMN_NAME/显示内容'] -- ...... -- ELSE ['COLUMN_NAME/显示内容'] -- END --2.Case搜索函数: -- CASE WHEN [COLUMN_NAME] = ['COLUMN_NAME/显示内容/表达式'] THEN [''COLUMN_NAME/显示内容''] -- WHEN [COLUMN_NAME] = ['COLUMN_NAME/显示内容/表达式'] THEN [''COLUMN_NAME/显示内容''] -- ...... -- ELSE ['COLUMN_NAME/显示内容'] -- END --说明:两种方式可以实现相同的功能。简单CASE函数较CASE搜索函数语法简洁,但功能方面有所限制。 --比如说写判断式。同时还需要注意一点:CASE函数只返回第一个符合条件的值,剩下达到CASE部分将会被自动忽略。 --另外:使用CASE()函数一方面可以在查询时灵活的组织语法结构,另外一方面可以避免对同一张或多张表的多次访问。
--重点说明:ELSE可以没有。 --EG: SELECT C.* , CASE WHEN C.T_NUMBER = '1' THEN '男' WHEN C.T_NUMBER = '2' THEN '女' ELSE '其他' END AS '性别' FROM DAY20190706 C; SELECT C.* , CASE WHEN C.T_NUMBER < '1' THEN '男' WHEN C.T_NUMBER > '2' THEN '女' ELSE '其他' END AS '性别' FROM DAY20190706 C; SELECT C.* , CASE WHEN C.T_NUMBER = '1' OR C.T_NUMBER = '0' THEN '男' WHEN C.T_NUMBER = '2' THEN '女' ELSE '其他' END AS '性别' FROM DAY20190706 C; SELECT C.* , CASE WHEN C.T_NUMBER = '1' AND C.T_NUMBER = '0' THEN '男' WHEN C.T_NUMBER = '2' THEN '女' ELSE '其他' END AS '性别' FROM DAY20190706 C;