VALUES
描述
生成在查询中使用的内联临时表。
语法
VALUES {expression | ( expression [, ...] ) } [, ...] [table_alias]
SELECT expression [, ...] [table_alias]
参数
expression
生成值的一个或多个值、运算符和 SQL 函数的组合。
table_alias
允许按名称引用结果集的可选标签。
每个元组构成一行。
如果有多个行,则每个元组中的字段数必须匹配。
使用 VALUES 语法时,如果未指定元组,则每个表达式等同于单个字段元组。
使用 SELECT 语法时,所有表达式构成一个单行临时表。
每个元组的第 n 个字段必须共享一个最不常见的类型。 如果 table_alias 指定列名称,则列名数必须与每个元组的表达式数量相匹配。
结果是一个临时表,其中每列的类型是匹配的元组字段中最不常见的类型。
示例
-- single row, without a table alias
VALUES ("one", 1);
+---------+-----------+
| col1| col2|
+---------+-----------+
| one| 1|
+---------+-----------+
-- Multiple rows, one column
VALUES 1, 2, 3;
+---------+
| col1|
+---------+
| 1|
+---------+
| 2|
+---------+
| 3|
+---------+
-- three rows with a table alias
SELECT data.a, b
FROM VALUES ('one', 1),
('two', 2),
('three', NULL) AS data(a, b);
+---------+-----------+
| a| b|
+---------+-----------+
| one| 1|
+---------+-----------+
| two| 2|
+---------+-----------+
| three| NULL|
+---------+-----------+
-- complex types with a table alias
SELECT a, b
FROM VALUES ('one', array(0, 1)),
('two', array(2, 3)) AS data(a, b);
+---------+-----------+
| a| b|
+---------+-----------+
| one| [0,1]|
+---------+-----------+
| two| [2,3]|
+---------+-----------+
-- Using the SELECT syntax
SELECT 'one', 2
+---------+-----------+
| one| 2|
+---------+-----------+
| one| 2|
+---------+-----------+