Tsql теория > Использование оператора PIVOT
31.05.2018 14:02:43
Наиболее часто встречающиеся слова в статье:
[столбец] [сведенный] [столбца] [VendorID] [значения] [EmployeeID] [табличное] [значение] [выражения] [выходных]
Статья:
Реляционный оператор PIVOT можно использовать для изменения возвращающего табличное значение выражения в другой таблице. Оператор PIVOT разворачивает возвращающее табличное значение выражение, преобразуя уникальные значения одного столбца выражения в несколько выходных столбцов, а также, в случае необходимости, объединяет оставшиеся повторяющиеся значения столбца и отображает их в выходных данных.
SELECT <несведенный столбец>,
[первый сведенный столбец] AS <имя столбца>,
[второй сведенный столбец] AS <имя столбца>,
...
[последний сведенный столбец] AS <имя столбца>,
FROM
(< запрос SELECT, извлекающий эти данные>)
AS <псевдоним исходного запроса>
PIVOT
(
<статистическая функция>(<статистически обработанный столбец>)
FOR
[<столбец, содержащий значения, которые станут именами столбцов>]
IN ( [первый сведенный столбец], [второй сведенный столбец],
... [последний сведенный столбец])
)AS <псевдоним сведенной таблицы>
<необязательное предложение ORDER BY>;
USE AdventureWorks2008R2;
GO
SELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5
FROM
(SELECT PurchaseOrderID, EmployeeID, VendorID
FROM Purchasing.PurchaseOrderHeader) p
PIVOT
(
COUNT (PurchaseOrderID)
FOR EmployeeID IN
( [250], [251], [256], [257], [260] )
) AS pvt
ORDER BY pvt.VendorID;
VendorID Emp1 Emp2 Emp3 Emp4 Emp5
1492 2 5 4 4 4
1494 2 5 4 5 4
1496 2 4 4 5 5
1498 2 5 4 4 4
1500 3 4 4 5 4
Данные, возвращаемые в результате выполнения указанного подзапроса выборки,
сводятся в столбец EmployeeID.