Oracle中的CASE WHEN語句是一種強大的工具,用於在SQL查詢中進行條件邏輯判斷。它有兩種主要形式:簡單CASE函式和搜尋CASE函式。這兩種形式在功能上是相似的,但語法略有不同。
簡單CASE函式:
語法:CASE column_name WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE resultN END
示例:SELECT CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END FROM table_name;
搜尋CASE函式:
語法:CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END
示例:SELECT CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END FROM table_name;
用法示例:
在SELECT語句中添加額外的列,根據條件返回不同的值。例如,統計不同性別的學生人數。
在WHERE子句中實現更複雜的篩選條件,例如,基於特定條件選擇特定的行。
與GROUP BY結合,用於自定義統計和分組。例如,根據工資範圍分類統計員工數量。
在PL/SQL代碼中,用於控制流程,如條件更新或更複雜的邏輯判斷。
注意事項:
CASE WHEN語句在Oracle中是塊結構的,意味著它會按照列出的順序評估條件,一旦找到第一個滿足的條件,就執行相應的操作並退出,不再檢查後面的條件。
如果省略了ELSE子句並且沒有條件匹配,Oracle默認會返回NULL,而在PL/SQL中,這會導致錯誤。
通過上述方式,CASE WHEN語句在Oracle中提供了靈活的條件邏輯處理能力,可以廣泛套用於各種SQL查詢和PL/SQL代碼中。