資料倉儲之Case表示式

2021-06-04 16:24:27 字數 1510 閱讀 7249

重點學習

! 利用 case表示式返回可選的值

! 在case表示式中使用特定的變數

! nullif的使用方法

! coalesce (接合)

case 表示式

case表示式被用來根據搜尋的條件返回可選的值。case表示式有兩種格式:

! valued (基於值)

! searched (基於搜尋)

基於值(valued)的case語句

case語句允許對返回的資料記錄進行條件處理。基於值的case表示式的基本格式為:

case value-expr when expr1 then result1

when expr2 then result2

:else resultn end

它的特點是:

! 對處理的每一條資料記錄都將返回乙個單獨的結果

! 每一行的值決定於每乙個when子句

! 對於某行的處理首先找到第乙個匹配的值並返回結果,如果沒有匹配的值,則返回else子句後面的值。

基於搜尋(searched)的case語句

在基於搜尋的case語句中,沒有必要指定乙個表示式來進行計算,將計算的值作為匹配的基礎。取而代之的是,可以指定多個、任意的搜尋條件,對每乙個搜

索條件返回相應的值。對於不匹配的條件處理,可以明確地指定乙個else子句,或利用預設的else null子句。

基於搜尋的case語句格式為:

case when condition1 then value-expr1

when condition2 then value-expr2

else value-expr end

nullif表示式

nullif實際上用來作為case語句在某種情況下的縮寫,其格式為:nullif ( , )

規則:! 如果表示式1等於表示式2,則返回null

! 如果表示式1不等於表示式2,則返回表示式1的值。

nullif等價於:

case

when = then null

else

end

coalesce(接合)表示式

coalesce實際上也是case語句在某種特殊情況下的宿寫。coalesce將返

回第乙個非null表示式的值。其格式為:

coalesce ( , [, ] )

等價於:

case

when is not null then

when is not null then

...when is not null then

else null

end

case表示式詳解

格式一 case 條件表示式 when 條件表示式結果1 then 語句段1 when 條件表示式結果2 then 語句段2 when 條件表示式結果n then 語句段n else 條件表示式結果 end 格式二 case when 條件表示式1 then 語句段1 when 條件表示式2 the...

SQL高階查詢 case表示式

case表示式可以在sql中實現if then else型的邏輯,oracle database 9i及以上版本支援case表示式,case工作方式與decode 類似 有兩種型別的case表示式 1.簡單case表示式,使用表示式確定返回值 case search expression when ...

case表示式和decode函式

1.用case表示式做等值判斷 格式 case 表示式 when 值1 then 返回值1 when 值2 then 返回值2 else 預設返回值 end 示例 查詢員工編號,姓名,部門編號,部門名稱 部門名稱 30 sale 20 etc 10 jxb 其他 icss select empno ...