Как преобразовать столбцы в строки в ms SQL server
У меня есть один столик
TIMETABLEон содержит валы как
id| Day | p1 | p2 | p3 | p4| Short_By_Name_by_Class 1 | mon | ES | GS | CP | GN| name1 2 | tue | AB | AC | AD | AE| name2 3 | Wed | BA | BB | BC | BD| name3
Теперь как преобразовать это как
PD |mon| tue| wed P1 |ES | AB | BA | P2 |GS | AC | BB | P3 |CP | AD | BC | P4 |GN | AE | BD |
Я использую этот запрос
Что я уже пробовал:
SELECT [DAY], [MON],[TUES],[WED]FROM TIMETABLE WHERE Short_By_Name_by_Class='name1' unpivot (ID for [DAY] in ([MON],[TUES],[WED]) ) unpiv;
CHill60
Что не так с вашим запросом? Что происходит (или не происходит)?
Member 12245539
Это заметно.
Msg 156, Уровень 15, Состояние 1, Строка 2
Неверный синтаксис рядом с ключевым словом "unpivot".
CHill60
Так что исправьте синтаксис запроса - вот документация Использование PIVOT и UNPIVOT - SQL Server | Microsoft Docs[^]
Member 12245539
plz help я уже прошел по этой ссылке...
MadMyche
Ну, вы должны пройти через это снова; и медленно переносите образец, данный В то, что вам нужно, столбец за столбцом, пока вы не получите то, что вам нужно.
RedDk
Переходя к сути дела, смотрите здесь:
https://www.codeproject.com/Tips/500811/Simple-Way-To-Use-Pivot-In-SQL-Query
А здесь:
https://www.codeproject.com/Tips/1011591/Dynamic-Pivot-Query-in-SQL-Server