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;