2017-07-27 160 views
-1

表結構如下檢索結果:我需要一個SQL查詢從一列多列值

id |det_Id | Name | Value 

的樣本數據如下:

1 | 111 | A | Apple 

2 | 111 | B | Ball 

3 | 111 | C | Cat 

4 | 222 | A | Air 

5 | 222 | B | Badge 

6 | 222 | C | Car 

我想在一個SQL語句中將A,B,C作爲單獨的列返回。

我的預期成果是:

111 | Apple | Ball |Cat 

222 | Air | Badge|Car 
+0

您正在使用什麼數據庫管理系統? – Matt

+1

你的第一種方法可以是在'det_Id'上加入表格。你到目前爲止嘗試過什麼嗎?你卡在哪裏? –

+0

這就是所謂的PIVOT。 – OldProgrammer

回答

1

使用PIVOT功能。

SELECT * FROM 
(SELECT det_Id, Name, Value FROM yourtable) a 
PIVOT 
(MIN(Value) FOR Name IN ([A], [B], [C]))b 

輸出

det_Id A  B  C 
111 Apple Ball Cat 
222 Air Badge Car 

SQL小提琴:http://sqlfiddle.com/#!6/c02dd8/2/0

+0

非常感謝。它工作正常。非常感謝 – Arun