A sintaxe correta do Postgres seria:
SELECT * FROM (VALUES (1)) AS q (col1);
Um conjunto de parênteses estava faltando.
Mas parece que o Redshift nem mesmo suporta um
VALUES
expressão fora de INSERT
(como o Postgres moderno faz). Portanto, para uma linha única :SELECT * FROM (SELECT 1) AS q (col1);
Para várias linhas (sem usar
UNION ALL
como solicitado) você pode usar uma tabela temporária. Observação (por documentação
):CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Se
UNION ALL
seria uma opção:SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;