Operatorii relaționali PIVOT și UNPIVOT pot fi utilizați pentru a schimba expresia de returnare a tabelei într-un alt tabel. Instrucțiunea PIVOT extinde expresia de returnare a tabelei transformând valorile unice ale unei coloane a expresiei în mai multe coloane de ieșire și, dacă este necesar, combinând valorile duplicate rămase ale coloanei și le afișează în datele de ieșire. Operatorul UNPIVOT face inversul PIVOT, transformând coloanele expresiei de valoare în tabel la valorile coloanelor.
Sintaxa operatorului PIVOT este mai simplă și mai ușor de înțeles decât sintaxa care poate efectua aceeași acțiune folosind o secvență de instrucțiuni SELECT. CASE. Pentru o descriere completă a sintaxei instrucțiunii PIVOT, consultați FROM (Transact-SQL).
Sintaxa adnotată a instrucțiunii PIVOT este prezentată mai jos.
SELECT <несведенный столбец>.
[prima coloană combinată] AS <имя_столбца>.
[a doua coloană combinată] AS <имя столбца>.
[ultima coloană agregată] AS <имя столбца>
( <запрос SELECT, который формирует данные> )
AS <псевдоним исходного запроса>
[<столбец, который содержит значение, которые станут заголовками столбцов>]
IN ([prima coloană prăbușită]. [Coloana a doua combinată].
[ultima coloană combinată])
) AS <псевдоним сводной таблицы>
<необязательное предложение ORDER BY>
SELECT
[prima coloană pivotată] AS
[a doua coloană pivotată] AS
[ultima coloană pivotată] AS
(
AS
[
IN ([prima coloană pivotată], [a doua coloană pivotată],
[ultima coloană pivotată])
) AS
Aceasta înseamnă că valorile unice ale coloanei EmployeeID devin câmpurile setului de rezultate rezultat. Prin urmare, există o coloană pentru fiecare număr de angajat. În acest caz, angajații 164. 198. 223. 231 și 233. PurchaseOrderID servește ca o coloană de valori prin care coloanele returnate la ieșirea finală sunt grupate și numite coloane de grupare. În acest caz, valorile coloanelor de grup sunt prelucrate utilizând funcția COUNT. Rețineți că atunci când calculați funcția COUNT pentru fiecare angajat, se emite un avertisment care indică faptul că valorile goale din coloana PurchaseOrderID sunt ignorate.
În prelucrarea statistică a datelor utilizând funcțiile care conțin operatorul PIVOT, valorile coloanelor goale sunt ignorate.
Operatorul UNPIVOT face opusul operatorului PIVOT, transformând coloanele de date în rânduri. Să presupunem că tabela creată în timpul exemplului anterior este stocată în baza de date și are un identificator pvt. Să fie necesar să convertiți identificatorii coloanelor Emp1. Emp2. Emp3. Emp4 și Emp5 în rândurile de date, grupate de furnizori. În acest caz, trebuie să definiți două coloane suplimentare. Alocați coloana care conține valorile convertite (Emp1, Emp2.), Numele angajatului. iar coloana care conține valorile coloanelor rotite se numește Ordine. Aceste coloane sunt asociate cu astfel de parametri în definiția Transact-SQL, respectiv pivot_column și coloană_valuează. Solicitare: