column_name的类型为int []
SELECT unnest(column_name) FROM table_name
以上查询适用于postgresql但不适用于hsqldb,即使使用sql.syntax_pgs = true
尝试了Hsqldb版本:2.2.9和2.3.0
在hsqldb中运行的sql是 SELECT x FROM table_name,unnest(column_name)y(x) x和y不是此表的列。
答案 0 :(得分:1)
HSQLDB尝试模拟PostgreSQL的语法和功能,但与大多数模拟一样,它并不完美。
IIRC,其中一个很难解决的问题是PostgreSQL在SELECT
子句中使用set-returns函数的奇怪之处。
在SELECT
子句中使用SRF是一个奇怪的PostgreSQL扩展,不赞成使用SQL标准LATERAL
查询。您展示的替代配方:
SELECT x FROM table_name, unnest(column_name) y(x);
是正确且首选的形式。所以就这样使用它。
一般来说,测试一个数据库然后部署到另一个数据库是一个痛苦的方法。我强烈建议只设置一个本地PostgreSQL实例进行测试。