文章出處

 

作用:

  1. 可以將查詢結果集的某一列的字段值進行替換
  2. 它可以生成一個新列
  3. 相當于switch...case和 if..else

 

使用語法:

case 表達式/字段

         when 值 then 自定義值

         else

end as 別名

 

when 值 then:可以理解為當某個字段為某個值的時候,然后就返回自定義值將結果集的字段值進行替換

else:如果上面的when都不滿足就執行else結果

 

 


 

 

常用用法一(case后面有字段或者表達式)

when關鍵字后面寫固定值

 

case關鍵字后面如果有字段或者表達式,那么這種結構只能做等值判斷,等值的意思是when關鍵字后面寫了固定的值

示例圖解:

 

注意:該方式不能用于判斷null

 

 


 

 

常用方式二(case關鍵字后面沒有字段或表達式)

when關鍵字后面寫條件表達式

 

思考:

現在有個需求說,要求年齡字段這個人滿足18歲或者年齡在某個范圍,那么如果用上面說的等值判斷,無法滿足,因為字段要匹配的是一個范圍

 

如果case關鍵字后面沒有寫字段或表達式,那么結構就相當于 if..elseif...else可以做范圍判斷,它可以使用null值判斷

 

 

實例圖解:

 


注意:

then 后面的值的類型 要與當前case范圍內的保持一致

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()