Inf*_*892 8 sql postgresql amazon-redshift set-returning-functions
我已经尝试过常见的PostgreSQL答案,但似乎它不适用于Redshift:
SELECT * FROM VALUES (1) AS q (col1);
ERROR: 42883: function values(integer) does not exist
Run Code Online (Sandbox Code Playgroud)
我需要这个因为某些原因我无法使用UNION ALL.任何帮助将不胜感激.
Erw*_*ter 16
正确的Postgres语法是:
SELECT * FROM (VALUES (1)) AS q (col1);Run Code Online (Sandbox Code Playgroud)
缺少一组括号.
但似乎Redshift甚至不支持VALUES外面的表达INSERT(就像现代的Postgres一样).所以,对于单行:
SELECT * FROM (SELECT 1) AS q (col1);Run Code Online (Sandbox Code Playgroud)
对于多行(不使用UNION ALL类似请求),您可以使用临时表.注意(根据文件):
临时表会在创建它的会话结束时自动删除.
CREATE TEMP TABLE q(col1 int);
INSERT INTO q(col1)
VALUES (1), (2), (3);
SELECT * FROM q;
Run Code Online (Sandbox Code Playgroud)
如果UNION ALL是一个选项:
SELECT 1 AS col1
UNION ALL SELECT 2
UNION ALL SELECT 3;
Run Code Online (Sandbox Code Playgroud)