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;