Как преобразовать столбцы в строки
Привет друзья я обнаружил, что этот сайт проекта кода предоставляет лучшие решения и помощь, что делает разработку более легкой, и этот сайт помогает общаться с другими профессиональными разработчиками, чтобы они могли поделиться своими важными знаниями, которые требуют этого я хочу сказать спасибо разработчикам и проекту кода за их большую работу.
У меня есть таблица в которой я хочу преобразовать столбцы в строки
+--------------+--------------+--------------+--------------+ |(Column Name1)|(Column Name2)|(Column Name3)|(Column Name4)| +--------------+--------------+-------------+---------------+ |Data11 |Data21 |Data31 |Data41 | +--------------+--------------+-------------+---------------+ |Data12 |Data22 |Data32 |Data42 | +--------------+--------------+-------------+---------------+ |Data13 |Data23 |Data33 |Data43 | +--------------+--------------+-------------+---------------+ |Data14 |Data24 |Data34 |Data44 | +--------------+--------------+-------------+---------------+ |Data15 |Data25 |Data35 |Data45 | +--------------+--------------+-------------+---------------+
Вышеприведенный столбец таблицы должен выглядеть так же, как и нижеприведенная таблица:
+--------+--------+--------+--------+--------+ | (Col1) | (Col2) | (Col3) | (Col4) | (Col5) | +--------+--------+--------+--------+--------+ | Data11 | Data12 | Data13 | Data14 | Data15 | +--------+--------+--------+--------+--------+ | Data21 | Data22 | Data23 | Data24 | Data25 | +--------+--------+--------+--------+--------+ | Data31 | Data32 | Data33 | Data34 | Data35 | +--------+--------+--------+--------+--------+ | Data41 | Data42 | Data43 | Data44 | Data45 | +--------+--------+--------+--------+--------+
Я попробовал ниже запрос, но он работает только для одного столбца, я хочу, чтобы несколько столбцов были преобразованы в строки.
Что я уже пробовал:
Declare @cols nvarchar(max) Declare @query nvarchar(max) Select @cols = stuff((select ','+QuoteName(Row_Number() over (Order by (Select NULL))) from #cols for xml path('')),1,1,'') Select @query = ' Select * from ( Select colname, RowN = Row_Number() over (order by colname) from #cols ) a pivot (max(colname) for RowN in (' + @cols + ')) p ' Exec sp_executesql @query
Пожалуйста, помогите мне найти решение.