--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;