La syntaxe correcte de Postgres serait :
SELECT * FROM (VALUES (1)) AS q (col1);
Un ensemble de parenthèses manquait.
Mais il semble que Redshift ne supporte même pas un VALUES
expression en dehors de INSERT
(comme le fait Postgres moderne). Ainsi, pour une ligne unique :
SELECT * FROM (SELECT 1) AS q (col1);
Pour plusieurs lignes (sans utiliser UNION ALL
comme demandé), vous pouvez utiliser une table temporaire. Remarque (par documentation
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Si UNION ALL
serait une option :
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;