Správná syntaxe Postgresu by byla:
SELECT * FROM (VALUES (1)) AS q (col1);
Chyběla sada závorek.
Zdá se však, že Redshift nepodporuje ani VALUES
výraz mimo INSERT
(jako to dělá moderní Postgres). Tedy pro jeden řádek :
SELECT * FROM (SELECT 1) AS q (col1);
Pro více řádků (bez použití UNION ALL
podle požadavku) můžete použít dočasnou tabulku. Poznámka (v dokumentaci
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Pokud UNION ALL
byla by možnost:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;