Списки VALUES

7.7. Списки VALUES

VALUES предоставляет метод генерации "постоянной таблицы", которая может быть использована в запросе без фактического создания и размещения этой таблицы на диске. Синтаксис следующий:

VALUES ( выражение [, ...] ) [, ...]

Каждый заключённый в круглые скобки список генерирует строку в таблице. Все списки должны иметь то же самое количество элементов (т.е. количество колонок в таблице) и соответствующие элементы в каждом списке должны иметь совместимые типы данных. Фактический тип данных, назначаемый каждой колонке, определяется используя те же правила, что и для UNION (см. Section 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 и разные СУБД генерируют их по-разному, так что обычно, лучше перекрыть имена, присвоенные по умолчанию с помощью списка табличных псевдонимов.

Синтаксически, VALUES, за которым следуют списки выражений, считается эквивалентным:

SELECT список_выбора FROM табличное_выражение

и может появится везде, где может появляться SELECT. Например, вы можете использовать эту конструкцию как часть UNION или прикрепить к ней спецификацию_сортировки (ORDER BY, LIMIT, и/или OFFSET). VALUES наиболее часто используется как источник данных в команде INSERT и затем наиболее часто как подзапрос.

Подробности см. в VALUES.

Back to top

(С) Виктор Вислобоков, 2008-2023