docs-v2/content/shared/sql-reference/table-value-constructor.md

3.4 KiB

The table value constructor (TVC) uses the VALUES keyword to specify a set of row value expressions to construct into a table. The TVC can be used in the FROM clause to build an ad hoc table at query time.

VALUES (row_value_list)[,...n]
Arguments
  • row_value_list: Comma-delimited list of column values. Enclose each list in parentheses and separate multiple lists with commas. Each list must have the same number of values and values must be in the same order as columns in the table. Each list must contain a value for each column.

Usage

SELECT
  expression[,...n]
FROM
  (VALUES (row_value_list)[,...n]) [AS] table_name(column_name[,...n])

[!Note] When using the TVC, the AS keyword is optional and implied when naming the table and providing column names.

Examples

Select data from an ad hoc table

SELECT *
FROM
  (VALUES ('2023-01-01 12:00:00'::TIMESTAMP, 1.23, 4.56),
          ('2023-01-01 13:00:00'::TIMESTAMP, 2.46, 8.1),
          ('2023-01-01 13:00:00'::TIMESTAMP, 4.81, 16.2)
  ) AS data(time, f1, f2)
time f1 f2
2023-01-01T12:00:00Z 1.23 4.56
2023-01-01T13:00:00Z 2.46 8.1
2023-01-01T13:00:00Z 4.81 16.2