2012-12-11 59 views
0

我需要幫助爲視圖編寫CASE語句,該視圖根據不同列的值以不同的列轉換列。例如:視圖的條件CASE語句

CASE b.Column1 WHEN 1 THEN 'No' ELSE 'Yes' END AS Yes_or_No 

這是很大的,它從另一個錶轉換column1的一個叫做列「Yes_or_No」,其顯示爲「否」時column1爲1,和「是」時column1爲「0」或NULL 。

問題是,我只想在視圖中的另一列Column2中有一個名爲'Dev'的值時纔會發生這種情況。因此,如果Column2的值爲'Dev',那麼上面的CASE語句應該生效。如果Column2的值是'Test'或'Prod',那麼我想'Yes_or_No'只是NULL。

回答

1

一個簡單的做法是嵌套case語句:

CASE WHEN Column2 = 'Dev' THEN 
     case b.Column1 when 1 then 'No' else 'Yes' end 
    WHEN Column2 in ( 'Test', 'Prod') THEN 
     Null 
END AS Yes_or_No 

更多可讀性我在上例外case殼和下殼內部一書中寫道。

+0

這很好,謝謝。 – dp3

1
CASE b.Column1 WHEN column2 <> 'dev' then null 
when 1 THEN 'No' 
ELSE 'Yes' END AS Yes_or_No 

reference