VALUES 列表 #VALUES 提供了一种生成 “常量表” 的方法,该表可以在查询中使用,而无需实际在磁盘上创建和填充表。其语法为
VALUES ( expression [, ...] ) [, ...]
每个带括号的表达式列表都会在表中生成一行。这些列表必须都具有相同数量的元素(即表中的列数),并且每个列表中对应的条目必须具有兼容的数据类型。使用与 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 将名称 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 后跟表达式列表被视为等效于
SELECTselect_listFROMtable_expression
并且可以出现在 SELECT 可以出现的任何位置。例如,您可以将其用作 UNION 的一部分,或者将可替换的 sort_specification(ORDER BY、LIMIT 和/或 OFFSET)附加到它。 VALUES 最常用作 INSERT 命令中的数据源,其次最常用作子查询。
有关更多信息,请参阅VALUES。
如果您在文档中发现任何不正确、与您使用特定功能的经验不符或需要进一步澄清的内容,请使用此表单报告文档问题。