2009-02-25 15 views
8

ho una struttura di risultati come questoT-SQL - come scambiare righe e colonne

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

e voglio arrivare a questo:

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

utilizzando SQL. C'è un modo per fare questo? Grazie!

risposta

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, self-join ... – Sung

6

questo è stato sempre un server di lavoro di routine pre SQL 2005.

Ora uso 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' 
Problemi correlati