Оператори Pivot и unpivot

Сайт на Delphi: ежедневни Delphi-новини, документация, статии, рецензия, интервю, компютърен хумор.

pivot и unpivot са нестандартни релационни оператори, които се поддържат от Transact-SQL. Можете да ги използвате, за да манипулирате израз на стойност на таблица в друга таблица, pivot преобразува такава стойност, връщайки уникалните стойности на една колона от този израз като множество колони и обобщава всички други стойности на колони, които са необходими в резултата изход.

Пример 24.24 показва как работи пивотът.

SELECT *, месец (date_month) като месец, година (datemonth) като година INTO project_dept_pivot FROM project_dept;

SELECT година, [1] като януари, [2] като февруари, [7] юли FROM (SELECT бюджет, година, месец от project_dept_pivot) p2 PIVOT (SUM (бюджет) ЗА месец IN ([1], [2], [ 7])) AS P;

Първата част на Пример 24-24 създава нова таблица, project_dept_pivot, която ще се използва, за да демонстрира как работи пивотният оператор. Тази таблица е идентична с таблицата на проектния отдел (въведена в пример 24.1), с изключение на две допълнителни колони, месец и година. Месечната колона на таблицата project_dept_pivot съдържа годините 2007 и 2008, които се появяват в колоната с месечни дати на таблицата project_dept. Също така колоните за месец в таблицата project_dept_pivot (януари, февруари и юли) съдържат общите бюджети, съответстващи на тези месеци в таблицата project_dept.