case when 語句用于 sql 中根據(jù)指定條件評估表達(dá)式并返回不同值。它的語法包含 when 子句(條件表達(dá)式和返回表達(dá)式)、else 子句(默認(rèn)表達(dá)式)和 end 關(guān)鍵字。它可用于各種場景,包括分配值、修改結(jié)果和轉(zhuǎn)換數(shù)據(jù)格式。
CASE WHEN 語句在 SQL 中的用法
CASE WHEN 語句是一種 SQL 查詢中的控制流語句,用于根據(jù)指定條件評估不同的表達(dá)式。其語法如下:
<code class="sql">CASE WHEN <condition> THEN <expression> WHEN <condition> THEN <expression> ... ELSE <default_expression> END</default_expression></expression></condition></expression></condition></code>
登錄后復(fù)制
用法:
條件(Condition):指定用于評估表達(dá)式的布爾表達(dá)式。
表達(dá)式(Expression):如果條件為真,則求值并返回的值。
默認(rèn)表達(dá)式(Default_expression):當(dāng)沒有條件為真時,求值并返回的值。
步驟:
確定要評估的條件:確定你想基于什么條件返回不同的值。
編寫 WHEN 子句:對于每個條件,使用 WHEN 子句指定條件和要返回的表達(dá)式。
添加 ELSE 子句:指定當(dāng)所有條件都不滿足時的默認(rèn)返回值(可選)。
結(jié)束 CASE 語句:使用 END 關(guān)鍵字結(jié)束 CASE 語句。
示例:
要根據(jù)客戶的年齡組為客戶分配折扣,可以使用以下 SQL 查詢:
<code class="sql">SELECT CASE WHEN age = 18 AND age = 25 AND age </code>
登錄后復(fù)制
在這個查詢中:
條件根據(jù)客戶的年齡對客戶進(jìn)行分組。
表達(dá)式指定每個年齡組的折扣率。
默認(rèn)表達(dá)式為 0.25,表示 35 歲以上的所有客戶的折扣率。
用例:
CASE WHEN 語句可用于各種場景,包括:
根據(jù)條件分配不同的值(如折扣或分類)。
基于條件修改查詢結(jié)果(如過濾或排序)。
轉(zhuǎn)換數(shù)據(jù)格式(如將文本轉(zhuǎn)換為數(shù)字)。






