-- заголовок столбца, который будет содержать заголовки строк исходной таблицы
Горячее
-- заголовок столбца, который будет содержать значения из строки исходной таблицы
From ( SELECT Вид, [Овощи], [Мясо], [Рыба]
, [Молоко], [Яйца], [Крупа], [Фрукты], [Кофе]
FROM ( -- pivot-запрос из предыдущего примера
SELECT s.Вид, Основа
FROM Блюда b JOIN Справочник_вид_блюда s
ON b.Вид = s.ID_Вид) a
PIVOT
(COUNT(Основа)
FOR Основа
IN ([Овощи], [Мясо], [Рыба], [Молоко], [Яйца], [Крупа], [Фрукты], [Кофе])
) pvt -- конец pivot-запроса
) pvt1
UNPIVOT
(Горячее
-- заголовок столбца, который будет содержать значения из столбцов исходной таблицы, перечисленных ниже
FOR Основа
IN ([Овощи], [Мясо], [Рыба], [Молоко], [Яйца], [Крупа], [Фрукты], [Кофе])
)unpvt;
| Результат
| |
| Основа
| Горячее
|
| Овощи
|
|
| Мясо
|
|
| Рыба
|
|
| Молоко
|
|
| Яйца
|
|
| Крупа
|
|
| Фрукты
|
|
| Кофе
|
|
Глава 7. Операторы манипулирования данными.
Операторы манипулирования данными (DML – Data Manipulation Language) предназначены для изменения данных в существующих таблицах БД. В этот раздел языка SQL входят три оператора:
INSERT – добавление новых данных,
DELETE – удаление данных и
UPDATE – изменение существующих данных.
Все операторы манипулирования данными позволяют изменить данные только в одной таблице.