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;