sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo seleccionar varias filas llenas de constantes en Amazon Redshift?

La sintaxis correcta de Postgres sería:

SELECT * FROM (VALUES (1)) AS q (col1);

Faltaba un conjunto de paréntesis.
Pero parece que Redshift ni siquiera admite un VALUES expresión fuera de INSERT (como lo hace Postgres moderno). Entonces, para una fila única :

SELECT * FROM (SELECT 1) AS q (col1);

Para varias filas (sin usar UNION ALL como se solicitó) puede usar una tabla temporal. Nota (por documentación ):

CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);

SELECT  * FROM q;

Si UNION ALL sería una opción:

SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;