#sql #sql-server #tsql
Вопрос:
Мне нужно повернуть мои данные так, чтобы классификация и торговля отображались в виде заголовков. Ниже приведен пример набора данных.
Описание | Статус | Номер проблемы | Пользовательская метка | Значение Custom_Value |
---|---|---|---|---|
Гидравлический | Открыть | 680 | Классификация | Главный |
Гидравлический | Открыть | 680 | Торговля | Насосы |
Электрический | Закрытый | 681 | Классификация | Незначительный |
Электрический | Закрытый | 681 | Торговля | Электрический |
Это мой необходимый результат:
Описание | Статус | Номер проблемы | Классификация | Торговля |
---|---|---|---|---|
Гидравлический | Открыть | 680 | Главный | Насосы |
Электрический | Закрытый | 681 | Незначительный | Электрический |
Ответ №1:
Простое PIVOT
должно сделать свое дело
Select *
From YourTable
Pivot ( max( Custom_Value ) for Custom_Label in ( [Classification],[Trade] ) ) pvt
Редактировать —
На всякий случай, если у вас есть дополнительные столбцы, не перечисленные выше… вам нужно «накормить» сводку только необходимыми столбцами.
Select *
From ( Select Description
,Status
,Issue_number
,Custom_Label
,Custom_Value
From YourTable
) src
Pivot ( max( Custom_Value ) for Custom_Label in ( [Classification],[Trade] ) ) pvt