У меня есть данные в представлении, где значения столбца Col_Head должны быть заголовками столбцов (они постоянны для каждой последовательности данных от 1 до 8.
И записи столбца Value
должны быть в виде значений строк.
Мне нужно написать некоторый SQL, который переносит / перемещает строки из Col_Head в качестве заголовков столбцов.
Примере:
Ожидаемые данные:
1 ответ
Если у вас был определенный идентификатор для каждого человека, вам не нужно было создавать CTE в любом случае.
Во-первых, я создаю определенный идентификатор для каждого человека, подобного этому, с помощью CTE
:
/*Create CTE*/
With tempTable as
(
select
row_number() over( order by(select 0) ) row_num,
*
from myTable
),newTable as(
select
case when (row_num %8)>0 then (row_num /8)+1 else (row_num /8) end sp_Id,
*
from tempTable
)
/*MainQuery*/
select
*
from (select sp_id, Col_Header,[Value] from newTable )as temp
pivot
(
max([Value])
for Col_Header in ([Emp name],[Emp Dept],[Emp Grade],[Emp class],[Emp Sal],[Emp manager],[Emp Date of join],[Emp documents])
) pivotTable
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.