Den korrekta Postgres-syntaxen skulle vara:
SELECT * FROM (VALUES (1)) AS q (col1);
En uppsättning parenteser saknades.
Men det verkar som om Redshift inte ens stöder en VALUES
uttryck utanför INSERT
(som moderna Postgres gör). Så, för en en rad :
SELECT * FROM (SELECT 1) AS q (col1);
För flera rader (utan att använda UNION ALL
som efterfrågat) kan du använda en tillfällig tabell. Obs (per dokumentation
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Om UNION ALL
skulle vara ett alternativ:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;