使用UNPIVOT-SQL Server 2017连接两个或多个列



你能帮我吗,我正试图使用UNPIVOT将列移动到行中,但我需要它,它对我来说效果不好。我还需要在行中显示列名,而不仅仅是值。

WITH ENCUESTA1
AS  (
SELECT
Cod as 'Codigo' 
,Wifi as 'Wifi'
,EntreTvCable as 'Cable'
FROM epha_rooms
)

SELECT Codigo, Pregunta 
FROM ENCUESTA1
UNPIVOT
(
Pregunta for col in ([Wifi], [Cable])
)un;

结果:

Codigo  Pregunta
---------------------
20      10
20      -7
21      10
21      4
22      10
22      10
23      10

我需要得到这个结果:

Codigo  Pregunta    Value
-------------------------------
20      Wifi        10
20      Cable       -7
21      Wifi        10
21      Cable       4
22      Wifi        10
22      Cable       10
23      Wifi        10

SQL Server没有安装在我的计算机上,但基于此文档,我希望下面的代码能帮助您。

WITH ENCUESTA1
AS  (
SELECT
Cod as 'Codigo' 
,Wifi as 'Wifi'
,EntreTvCable as 'Cable'
FROM epha_rooms
)

SELECT Codigo, Pregunta, Value
FROM ENCUESTA1
UNPIVOT
(
Value for Pregunta in ([Wifi], [Cable])
) un;

最新更新