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