PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment sélectionner plusieurs lignes remplies de constantes dans Amazon Redshift ?

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;