Den korrekte Postgres-syntaks ville være:
SELECT * FROM (VALUES (1)) AS q (col1);
Der manglede et sæt parenteser.
Men det ser ud til, at Redshift ikke engang understøtter en VALUES
udtryk uden for INSERT
(som moderne Postgres gør). Så for en enkelt række :
SELECT * FROM (SELECT 1) AS q (col1);
For flere rækker (uden at bruge UNION ALL
som anmodet) kan du bruge en midlertidig tabel. Bemærk (pr. dokumentation
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Hvis UNION ALL
ville være en mulighed:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;