VALUES
предоставляет способ создания « постоянной таблицы » , которую можно использовать в запросе без фактического создания и заполнения таблицы на диске.
VALUES ( expression [, ...] ) [, ...]
Каждый список выражений в скобках создает строку в таблице. Все списки должны иметь одинаковое количество элементов (т. е. количество столбцов в таблице), а соответствующие записи в каждом списке должны иметь совместимые типы данных. Фактический тип данных, назначенный каждому столбцу результата, определяется по тем же правилам, что и для UNION
Например:
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 присваивает имена column1
, column2
, и т. д. столбцам VALUES
таблицы. Имена столбцов не указаны в стандарте 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 select_list FROM table_expression
и может появиться где угодно SELECT
может. Например, вы можете использовать его как часть UNION
или присоединить к нему sort_specification
( ORDER BY
, LIMIT
, и/или OFFSET
). VALUES
чаще всего используется в качестве источника данных в INSERT
команде, а затем чаще всего в качестве подзапроса.
0 комментариев