2009-02-25 20 views
8

Tôi có một cấu trúc resultset như thế nàyT-SQL - làm thế nào để trao đổi hàng và cột

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

và tôi muốn để có được điều này:

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

sử dụng SQL. Có cách nào để làm việc này không? cảm ơn!

Trả lời

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 Ah, tự tham gia ... – Sung

6

này luôn như một máy chủ việc vặt trước sql 2005.

bây giờ tôi sử dụng 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' 
Các vấn đề liên quan