2009-02-25 16 views
8

que tienen una estructura de resultados como ésteT-SQL - cómo intercambiar filas y columnas

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

y quiero llegar a este:

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

utilizando SQL. ¿Hay alguna forma de hacer esto? ¡Gracias!

Respuesta

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, autocombinación ... – Sung

6

esto siempre era un servidor tal tarea pre sql 2005.

Ahora 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' 
Cuestiones relacionadas