Пытаюсь найти несколько простых примеров PIVOT SQL Server. Большинство примеров, которые я нашел, связаны с подсчетом или суммированием чисел. Я просто хочу развернуть некоторые строковые данные. Например, у меня есть запрос, возвращающий следующее.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Я хотел бы использовать PIVOT (если даже возможно), чтобы получить такие результаты:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
Возможно ли это даже с помощью функции PIVOT?
sql-server
tsql
pivot
Тим Кокран
источник
источник
Ответы:
Помните, что агрегатная функция MAX будет работать как с текстом, так и с числами. Этот запрос потребует только однократного сканирования таблицы.
источник
...ELSE NULL END...
вместо...ELSE '' END...
?Настройка стола:
Ваш стол:
SELECT action, view_edit FROM dbo.tbl
Запрос без использования PIVOT:
Запрос с использованием PIVOT:
Результат обоих запросов:
источник
Если вы специально хотите использовать функцию SQL Server PIVOT, это должно работать, если ваши два исходных столбца называются act и cmd. (Хотя это не так красиво.)
источник
Из http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/ :
источник
Что ж, для вашего образца и любого с ограниченным количеством уникальных столбцов это должно сработать.
источник
источник
У меня была ситуация, когда я анализировал строки, и первые две позиции рассматриваемой строки были бы именами полей стандарта кодирования медицинских требований. Поэтому я бы вырезал строки и получил значения для F4, UR и UQ или еще чего. Это было здорово для одной записи или нескольких записей для одного пользователя. Но когда я хотел увидеть сотни записей и значений для всех пользователей, мне потребовался PIVOT. Это было замечательно, особенно для экспорта большого количества записей, чтобы преуспеть. Конкретный запрос на отчет, который я получил, заключался в следующем: «Каждый раз, когда кто-то подавал заявку на Benadryl, какое значение они отправляли в поля F4, UR и UQ. У меня было ВНЕШНЕЕ ПРИЛОЖЕНИЕ, которое создавало поля ColTitle и значения ниже.
источник