在SQL中,CASE表達式用于根據(jù)條件選擇不同的結(jié)果。
一般情況下,CASE表達式有兩種形式:簡單CASE表達式和搜索CASE表達式。
簡單CASE表達式: 簡單CASE表達式是根據(jù)一個具體的表達式的值來選擇結(jié)果。它的語法如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END
表達式的值會與每個WHEN子句中的值進行比較,如果匹配則返回對應(yīng)的結(jié)果,如果沒有匹配到任何WHEN子句,則返回ELSE子句中的結(jié)果。如果沒有提供ELSE子句,則返回NULL。
搜索CASE表達式: 搜索CASE表達式是根據(jù)多個條件進行選擇結(jié)果。它的語法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
每個WHEN子句中的條件會逐個進行判斷,如果條件為真則返回對應(yīng)的結(jié)果,如果沒有條件為真,則返回ELSE子句中的結(jié)果。如果沒有提供ELSE子句,則返回NULL。
CASE表達式還可以嵌套使用,可以在WHEN或ELSE子句中使用其他CASE表達式來實現(xiàn)更復(fù)雜的條件判斷。
使用CASE表達式可以實現(xiàn)在查詢中進行條件判斷,根據(jù)不同的條件選擇不同的結(jié)果,從而豐富查詢的結(jié)果集。