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_list
FROMtable_expression
並且可以出現在 SELECT
可以出現的任何地方。 例如,您可以將它用作 UNION
的一部分,或將 sort_specification
(ORDER BY
、LIMIT
和/或 OFFSET
)附加到它。 VALUES
最常用於 INSERT
命令中的資料來源,其次最常用作子查詢。
有關更多資訊,請參閱 VALUES。
如果您在文件中看到任何不正確、與您使用特定功能時的體驗不符或需要進一步澄清的地方,請使用此表單來報告文件問題。