Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 7. Запросы | След. |
7.7. Списки VALUES
Предложение VALUES позволяет создать "постоянную таблицу", которую можно использовать в запросе, не создавая и не наполняя таблицу в БД. Синтаксис предложения:
VALUES ( выражение [, ...] ) [, ...]
Для каждого списка выражений в скобках создаётся строка таблицы. Все списки должны иметь одинаковое число элементов (т. е. число колонок в таблице) и соответствующие элементы во всех списках должны иметь совместимые типы данных. Фактический тип данных колонок результата определяется по тем же правилам, что и для UNION (см. Раздел 10.5).
Как пример:
VALUES (1, 'one'), (2, 'two'), (3, 'three');
вернёт таблицу из двух колонок и трёх строк. Это равносильно такому запросу:
SELECT 1 AS column1, 'one' AS column2 UNION ALL SELECT 2, 'two' UNION ALL SELECT 3, 'three';
По умолчанию PostgreSQL назначает колонкам таблицы VALUES имена column1, column2 и т. д. Имена колонок не определены в стандарте SQL и в другой СУБД они могут быть другими, поэтому обычно лучше переопределить имена списком псевдонимов, например так:
=> SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')) AS t (num,letter); num | letter -----+-------- 1 | one 2 | two 3 | three (3 rows)
Синтаксически список VALUES с набором выражений равнозначен:
SELECT список_выборки FROM табличное_выражение
и допускается везде, где допустим SELECT. Например, вы можете использовать его в составе UNION или добавить к нему определение_сортировки (ORDER BY, LIMIT и/или OFFSET). VALUES чаще всего используется как источник данных для команды INSERT, а также как подзапрос.
За дополнительными сведениями обратитесь к справке VALUES.
Пред. | Начало | След. |
LIMIT и OFFSET | Уровень выше | Запросы WITH (Общие табличные выражения) |