在HSQLDB中连接

时间:2014-07-23 11:13:46

标签: java sql oracle hsqldb hierarchical-query

我正在编写使用层次结构连接的查询的测试用例。 似乎HSQL Db中没有对该子句的支持。

是否有任何替代方法可用于测试查询或编写执行相同操作的其他查询。

查询很简单

SELECT seq.nextval
FROM DUAL
CONNECT BY level <= ?

感谢。

2 个答案:

答案 0 :(得分:1)

您不需要递归查询。

要生成一系列数字,您可以使用sequence_array

select * 
from unnest(sequence_array(1, ?, 1))

手册中有更多详细信息:
http://hsqldb.org/doc/2.0/guide/builtinfunctions-chapt.html#N14088

如果您需要将序列推进到特定数量的条目,您可以使用以下内容:

select NEXT VALUE FOR seq
from unnest(sequence_array(1, 20, 1));

如果你需要设置序列为新值,这在HSQLDB中要容易得多:

ALTER SEQUENCE seq restart with 42;

如果 正在寻找递归查询,那么HSQLDB支持ANSI SQL标准:递归公用表表达式,在手册中有说明:
http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_with_clause

答案 1 :(得分:0)

根据this 2-year-old ticket,只有Oracle和名为CUBRID的数据库具有CONNECT BY功能。如果你真的想要它,也许你可以在票上投票。但是,就我所知,只有两个人在做这个项目,所以不要屏住呼吸。