La sintassi Postgres corretta sarebbe:
SELECT * FROM (VALUES (1)) AS q (col1);
Mancava una serie di parentesi.
Ma sembra che Redshift non supporti nemmeno un VALUES
espressione al di fuori di INSERT
(come fa il moderno Postgres). Quindi, per una singola riga :
SELECT * FROM (SELECT 1) AS q (col1);
Per più righe (senza usare UNION ALL
come richiesto) è possibile utilizzare una tabella temporanea. Nota (per documentazione
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Se UNION ALL
sarebbe un'opzione:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;