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