2009-11-03 51 views
0

有沒有辦法使用一個CASE語句並返回2個不同的值?TSQL - 如何用一個case語句返回2個值?

以下查詢有2條CASE條件相同的條件。

select case when DA.value = 1 
      then da.Good else da.Bad end as Foo, 
     case when DA.value = 1 
      then ot.Good else ot.Bad end as Bar, 
from someTable DA (nolock) 
     join otherTable OT (nolock) on OT... 
where ... 

反正是有,指定CASE聲明一次
這樣,當條件改變時,不需要保持兩個CASE語句同步。

回答

2

沒有辦法做你所描述的。這兩種情況不僅對您的案例陳述不同,而且您在每種情況下都從完全不同的表中返回值。

+0

@Josheph。謝謝你的答案。這個問題主要是爲了確認是否真的有辦法這樣做。但即使在閱讀MSDN BOL之後,我仍然無法找到解決方法。 – Sung 2009-11-03 16:59:23

2

不知道這是否是你所需要的,但你可以喜歡做組合:

select 
    case 
     when da.value = 1 and ot.attributeValue = 1 then ot.good 
     when da.value = 2 and ot.attributeValue = 3 then ot.good 
     ... 
     else ot.bad 
    end Result 
from 
    someTable DA 

    JOIN otherTable OT 
     on (ot.id = da.id)