Из результата этого запроса:
+--------------------------------------+-----------+--------+
| id | name | data |
+--------------------------------------+-----------+--------+
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | LMP1(FA5) | NULL |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Limits | NULL |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Low | 1 |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | High | 3 |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Units | second |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Comp | GELE |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Data | 1.8 |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Status | Passed |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | LMP2(FA6) | NULL |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Limits | NULL |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Low | 1 |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | High | 3 |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Units | second |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Comp | GELE |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Data | 1.8 |
| 4EAB4160-75FF-11E8-8719-2C56DC925591 | Status | Passed |
+--------------------------------------+-----------+--------+
Я хотел бы получить это:
Я пробовал это, но это не окончательный ответ:
SELECT *
FROM
(
SELECT id, name, data as f FROM temp_id)t
PIVOT(MIN(f)
FOR name
IN ([LMP1 (FA5)],[Limits],[Low],[High],[Units],[Comp],[data],[Status])
)p
было бы неплохо также иметь имя динамического столбца ...
Благодарю всех за помощь.
Я пробовал этот динамический пивот, но он не работает:
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT ',' + QUOTENAME(c.name)
FROM temp_id c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT id,' + @cols + ' from
(
select id
, name
, data
from temp_id
) x
pivot
(
count(name)
for name in (' + @cols + ')
) p