Prawidłowa składnia Postgres to:
SELECT * FROM (VALUES (1)) AS q (col1);
Brakowało zestawu nawiasów.
Wygląda jednak na to, że Redshift nie obsługuje nawet VALUES
wyrażenie poza INSERT
(jak współczesny Postgres). Tak więc dla pojedynczego wiersza :
SELECT * FROM (SELECT 1) AS q (col1);
Dla wielu wierszy (bez użycia UNION ALL
jak zażądano) możesz użyć tabeli tymczasowej. Uwaga (zgodnie z dokumentacją
):
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Jeśli UNION ALL
byłaby opcja:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;