VALUES
VALUES
is a table constructor - a clause that can be used to define tabular data.
Tip
Use VALUES in conjunction with INSERT statements to insert a set of one or more rows.
Permissions
This clause requires no special permissions.
Syntax
values_expr ::=
VALUES ( value_expr [, ... ] ) [, ... ]
;
Notes
Each set of comma-separated value_expr
in parentheses represents a single row in the result set.
Column names of the result table are auto-generated. To rename the column names, add an AS
clause.
Examples
Tabular data with VALUES
master=> VALUES (1,2,3,4), (5,6,7,8), (9,10,11,12);
1,2,3,4
5,6,7,8
9,10,11,12
3 rows
Using VALUES with a SELECT query
To use VALUES in a select query, assign a name to the VALUES
clause with AS
master=> SELECT t.* FROM (VALUES (1,2,3,'a'), (5,6,7,'b'), (9,10,11,'c')) AS t;
1,2,3,a
5,6,7,b
9,10,11,c
3 rows
You can also use this to rename the columns
SELECT t.* FROM (VALUES (1,2,3,'a'), (5,6,7,'b'), (9,10,11,'c')) AS t(a,b,c,d);
Creating a table with VALUES
Use AS
to assign names to columns
CREATE TABLE cool_animals AS
(SELECT t.*
FROM (VALUES (1, 'dog'),
(2, 'cat'),
(3, 'horse'),
(4, 'hippopotamus')
) AS t(id, name)
);