Правилният синтаксис на Postgres би бил:
SELECT * FROM (VALUES (1)) AS q (col1);
Липсваше набор от скоби.
Но изглежда Redshift дори не поддържа VALUES
израз извън INSERT
(както съвременният Postgres прави). И така, за един ред :
SELECT * FROM (SELECT 1) AS q (col1);
За няколко реда (без да използвате UNION ALL
както е поискано) можете да използвате временна таблица. Забележка (по документация
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Ако UNION ALL
би било опция:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;