2013-12-12 77 views
0

我有一個合併兩個表的SQL語句,但最近我被要求添加案例條件。條件正在工作,但我遇到的問題是,每個條件創建一個重複的列。SQL將多列合併到一列

case when s.Department = 'Aero' then '(OA)' else '' end as Blah, 
case when s.Department = 'Terrent' then '(OT)' else '' end as Blah, 
case when s.Department = 'Vertigo' then '(OMG)' else '' end as Blah 

This causes me to end up with 

a| b | c | d | Blah | Blah | Blah| 
| | | | (OT) | (OA) | (OT)| 
| | | | (OT) |  |  | 
| | | | (OT) | (OA) |  | 
| | | | (OT) | (OA) | (OT)| 
| | | |  |  | (OT)| 

如何使用「case」cmd並獲得所有結果(如果適用)顯示在1列之下?

a| b | c | d | Blah | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OA) | 
| | | | (OA) | 
| | | | (OA) | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OT) | 
+0

我很困惑。部門如何看待「Aero」,「Terrent」和「Vertigo」的價值 - 正如您期望的結果的第一行所暗示的那樣? –

回答

1

你可以使用一個case語句而不是三個:

(case when s.Department = 'Aero' then '(OA)' 
     when s.Department = 'Terrent' then '(OT)' 
     when s.Department = 'Vertigo' then '(OMG)' 
     else '' 
    end) as Blah 
+0

Gordon Linoff,謝謝。 – stackrack

+0

最後一個問題。現在我怎樣才能完成產品(我的聲明中有多個連接)並將其插入永久表中? – stackrack

+0

@stackrack。 。 。你可以使用'select。 。 。進入。 。 。語句(在'from'之前放入''')。或者,您可以設置一個返回結果的視圖,但不實際實現一個表。 –