структура таблицы примерно такая, как показано ниже (общее количество записей достигает 150)
После транспонирования набор результатов таблицы должен быть таким, как показано ниже, где .... представляет количество столбцов.
По сути, моя идея состоит в том, чтобы создать временную таблицу на лету и определить имена ее столбцов из оператора select, чтобы получить набор результатов, показанный на 2-м рисунке.
Запрос должен иметь вид ---
SELECT * INTO #Cols FROM (select * of above resultset)A WHERE 1=2
Примечание. - Воздержитесь от использования пути FOR XML, поскольку в настоящее время Azure SQL DW не поддерживает эту функцию.
STRING_AGG
, поэтому вы можете использовать его для создания динамического оператора, а затем его выполнения. Затем вы можете использовать этот оператор, чтобы исправить свой дизайн и нормализовать его. - person Larnu   schedule 01.09.2020