目前这是我如何返回值。但我想组合具有相同Id的行。我尝试使用unpivot,但我无法让它工作。 这是我的疑问:
SELECT * FROM
(
SELECT
ID,
Setup,
Message
FROM myViewHere
)
AS tempTable
UNPIVOT
(
[Message]
FOR Test
IN (ID, Setup)
) AS PVT
这是 myViewHere
的结果 |ID | Setup | Message |
|---|--------|----------|
| 1 | Header | myHeader |
|---|--------|----------|
| 1 | Footer | myFooter |
我想要实现的目标:
|ID | Header | Footer |
|---|----------|----------|
| 1 | myHeader | myFooter |
|---|----------|----------|
答案 0 :(得分:2)
典型的支点案例https://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx
假设的表名是“来源”
SELECT ID, [Header], [Footer]
FROM source
PIVOT
( max(Message) FOR Setup IN ([Header], [Footer])) p;
请参阅sqlfeedle http://sqlfiddle.com/#!6/7635f/7
上的测试答案 1 :(得分:0)
您可以将视图查询更改为如下所示
SELECT * FROM
(
SELECT
ID,
Setup,
Message
FROM myViewHere
)
AS tempTable
UNPIVOT
(
[Message]
FOR Test
IN (ID, Setup)
) AS UNPVT
PIVOT
(
MAX([Message])
FOR [Setup]
IN ([Header], [Footer])
)PVT