2009-02-25 32 views
8

我有一個結果的結構是這樣T-SQL - 如何交換行和列

ID  Value  Name 
1  Oranges  Reponse 
1  42  Count 
2  Apples  Reponse 
2  65  Count 
3  Figs  Reponse 
3  74  Count 

,我想這樣的:

ID  Response  Count 
1  Oranges  42 
2  Apples  65 
3  Figs  74 

使用SQL。有沒有辦法做到這一點?謝謝!

回答

13
SELECT a.ID, a.Value AS [Response], b.Value AS [Count] 
FROM your_table AS a 
    INNER JOIN your_table AS b 
     ON a.ID = b.ID 
WHERE a.Name = 'Response' 
    AND b.Name = 'Count' 
+1

+1啊,自加入... – Sung 2009-02-25 20:01:43

6

這總是這樣的苦差事預SQL Server 2005的

現在我用PIVOT/UNPIVOT

0
SELECT A.ID, A.VALUE RESPONSE, C.VALUE COUNT 
FROM _table A 
INNER JOIN (
    SELECT ID, VALUE, NAME 
    FROM _table 
    WHERE _table.Name = 'Count' 
) C ON A.ID = C.ID 
WHERE A.NAME='Response' and C.NAME='Count'