PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come selezionare più righe piene di costanti in Amazon Redshift?

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;