转置和分组sql结果

时间:2019-11-27 18:29:46

标签: sql sql-server transpose

我需要对SQL查询进行分组和转置

我的数据如下:

Titulo    |   Valor
----------+---------
Cartera   |   Valor1
Nombre    |   Valor2
Direccion |   Valor3
Cosa      |   Valor4
Cartera   |   Valor5
Nombre    |   Valor6
Direccion |   Valor7
Cosa      |   Valor8
Cartera   |   Valor9
Nombre    |   Valor10
Direccion |   Valor11
Cosa      |   Valor12
Cartera   |   Valor13
Nombre    |   Valor14
Direccion |   Valor15
Cosa      |   Valor16 

我想根据“ Titulo”列对数据进行分组,但转置信息并使其看起来像表格。

示例

Cartera | Nombre  | Direccion | Cosa
--------+---------+-----------+-------
Valor1  | Valor2  | Valor3    | Valor4
Valor5  | Valor6  | Valor7    | Valor8
Valor9  | Valor10 | Valor11   | Valor12
Valor13 | Valor14 | Valor15   | Valor16

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以尝试调整结果集:

SELECT pvt.Cartera, pvt.Cosa, pvt.Direccion, pvt.Nombre FROM 
(SELECT ROW_NUMBER() OVER(PARTITION BY titulo ORDER BY valor) AS row, titulo,  valor FROM @MyTable) AS dt
PIVOT
(MAX(valor) FOR titulo IN ([Cartera], [Nombre], [Direccion], [Cosa])) AS pvt