溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確使用case when表達式 和 decode函數?

發布時間:2020-07-19 07:15:39 來源:網絡 閱讀:887 作者:小陳子057 欄目:關系型數據庫
    相信很多小伙伴在開發過程中都有用到case when表達式和decode函數,那么會不會有小伙伴和我一樣剛開始有很多疑慮,什么情況下用case when,什么情況下用decode呢?兩者有什么區別呢?今天小編就帶大家細分一下兩者的區別:

    case when表達式不僅可以等值連接還可以范圍判斷;decode函數可以等值連接。

    這樣說大家可能不能理解,舉個例子吧,如下;
    創建一張表tmp1,列為dept表示部門信息,分別有10,20,30,40,50部門:

如何正確使用case when表達式 和 decode函數?

    用case when表達式判斷,如果部門信息為10,則判斷為A,部門信息為20,則判斷為B,其他部門信息判斷為C:
    select case when dept = 10 then 'A'
                      when  dept = 20 then 'B'
                      else 'C'
    from tmp1;
    或者:
    select case  dept  when  10 then 'A'
                        when  20 then 'B'
                        else 'C'
    from tmp1;
    用decode函數判斷,如果部門信息為10,則判斷為A,部門信息為20,則判斷為B,其他部門信息判斷為C:
    select decode(dept,10,'A',20,'B','C') from tmp1;

    而如果想判斷部門信息為10或20時,判斷為'A',部門信息為30或40時,判斷為'B',其他則判斷為'C'。這時只能用case when表達式:
    select  case when dept between 10 and 20 then 'A'
                            when dept between 30 and 40 then 'B'
                            else 'C'
                            end 
    from tmp1;

 注:這時sql不能再寫為
    select  case dept when between 10 and 20 then 'A'
                            when between 30 and 40 then 'B'
                            else 'C'
                            end 
    from tmp1;
    這時會報錯:  ORA-00936:缺失表達式

本篇文章已經結束了,你學會了嗎?如若還有疑問,可留言給小編,看到必回復!
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女