CASE-WHEN函數(shù)

1.場(chǎng)景

  • 場(chǎng)景:當(dāng)我們需要將數(shù)據(jù)庫(kù)中查詢到的字段值,轉(zhuǎn)換成其他值的時(shí)候,就需要使用CASE-WHEN函數(shù)。

      類似:Java中的switch-case語(yǔ)句。
    
  • 分類:Case具有兩種格式。簡(jiǎn)單Case函數(shù)和Case搜索函數(shù)。

  • 舉例說(shuō)明:舉例的場(chǎng)景是查詢name字段,對(duì)結(jié)果做如下轉(zhuǎn)換:

2.簡(jiǎn)單Case函數(shù)

  • 語(yǔ)法說(shuō)明
case 列名
    when   條件值1   then  選擇項(xiàng)1
    when   條件值2    then  選項(xiàng)2.......
    else     默認(rèn)值
end

場(chǎng)景:簡(jiǎn)答查詢結(jié)果轉(zhuǎn)化
(1)'GEM': '鄧紫棋'
(2)'JAY': '周杰倫'
(3)'allen716': '艾倫'
(4)其余:'NICK'

SQL語(yǔ)句

SELECT
CASE name 
    WHEN 'GEM' THEN '鄧紫棋'
    WHEN 'JAY' THEN '周杰倫'
    WHEN 'allen716' THEN '艾倫'
    ELSE 'NICK'
END t_name  <!--把查詢出的列名轉(zhuǎn)成:t_name-->
FROM user;

3.Case搜索函數(shù)

  • 語(yǔ)法說(shuō)明
case      when  列名 = 條件值1   then  選項(xiàng)1    when  列名 = 條件值2   then  選項(xiàng)2.......    else  默認(rèn)值 end
  • 場(chǎng)景說(shuō)明

    更新員工表中的工資,不同等級(jí)的員工,工資乘以不同的系數(shù)

    (1)等級(jí):1 --- 工資系數(shù):1.8
    (2)等級(jí):2 --- 工資系數(shù):1.5
    (3)等級(jí):3 --- 工資系數(shù):1.2
    (4)默認(rèn) --- 工資系數(shù):1.1

  • SQL語(yǔ)句

    更新

UPDATE employee      
SET salary =      
CASE   
    WHEN level = '1' THEN salary * 1.8      
    WHEN level = '2' THEN salary * 1.5      
    WHEN level = '3' THEN salary * 1.2      
    ELSE salary * 1.1      
END
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容