查询适用于postgresql,但不适用于hsqldb

时间:2014-06-09 14:00:15

标签: postgresql hsqldb

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不是此表的列。

1 个答案:

答案 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实例进行测试。