【问题标题】:Connect By in HSQL DBHSQL DB 中的连接方式
【发布时间】:2014-09-14 13:09:05
【问题描述】:

我正在为使用按分层子句连接的查询编写测试用例。 HSQL Db中好像不支持这个子句。

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

查询很简单

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

谢谢。

【问题讨论】:

    标签: java sql oracle hsqldb hierarchical-query


    【解决方案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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 2012-09-17
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多