2017-04-27 50 views
1

我有這個在我的表的SQL Server 2012:合併兩行成一排

ID  Routing  
01  WFM 
01  ESCALATE 
02  WFM 
02  ESCALATE 

而且我想顯示(SQL SELECT查詢),以類似下面

ID  Routing1 Routing2  
01  WFM  ESCALATE 
02  WFM  ESCALATE 
+1

聽起來像一個'PIVOT'(但不完全)的情況。一個更大的示例表格可以幫助更清晰地理解所需變換的邏輯。 – stakx

+0

我認爲你可以執行一個自我加入,然後過濾它以得到結果 –

回答

0
select a.id,a.routing as routing1,b.routing as routing2 
from table1 as a join table1 as b 
on 
a.id=b.id 

這可以是您的基本查詢。

爲了達到你的效果。你可以使用類似的東西。

select id,routing1,routing2 
from (select a.id,a.routing as routing1,b.routing as routing2 
from table1 as a join table1 as b 
on 
a.id=b.id) 
where routing1 != routing2; 

我想你可以只添加a.routing!= b.routing的基本查詢,而不是與第二個查詢

0
select id, max(routing) as routing1, 
      (select min(routing) from route r2 where r2.id = r1.id) as routing2 
    from route r1 
    group by id 

這完美的作品,成交只有當你有2條記錄與此相同。