Как выбрать несколько строк, заполненных константами в Amazon Redshift?
Я уже пробовал обычный ответ PostgreSQL, но, похоже, он не работает с Redshift:
SELECT  * FROM VALUES (1) AS q (col1);
ERROR: 42883: function values(integer) does not exist
UNION ALL. Любая помощь будет очень признательна.1 ответ:
Правильный синтаксис Postgres был бы:
SELECT * FROM (VALUES (1)) AS q (col1);Набор скобок отсутствовал.
Но похоже, что Redshift даже не поддерживает выражениеVALUESвнеINSERT(как это делает современный Постгрес). Итак, для одной строки :SELECT * FROM (SELECT 1) AS q (col1);Для нескольких строк (без использования
UNION ALLкак запрошено) можно использовать временную таблицу. Примечание (по документации):Временная таблица автоматически удаляется в конце сеанса в который и был создан.
CREATE TEMP TABLE q(col1 int); INSERT INTO q(col1) VALUES (1), (2), (3); SELECT * FROM q;Если
UNION ALLбыл бы вариант:SELECT 1 AS col1 UNION ALL SELECT 2 UNION ALL SELECT 3;