代码之家  ›  专栏  ›  技术社区  ›  Manuel Selva

如何根据层次结构对SQL请求的结果排序

  •  2
  • Manuel Selva  · 技术社区  · 14 年前

    我使用SQLIte保存一些数据的Java应用程序的上下文。我的一个SQL表具有以下结构

    CREATE TABLE containers (ID INT PRIMARY KEY, NAME TEXT, PARENT_ID INT)
    

    命令 按层次结构级别。一、 我首先要所有没有父容器的容器(父容器ID=-1),然后是有一个祖先的容器,然后是有两个祖先的容器,等等。。。。

    对于下面这样的SQL请求,有没有办法让 ResultSet 以这种方式排序的对象。

    SELECT * from container ORDER BY (**"What to put here ???"**)
    

    编辑 我知道我以后可以在Java中做到这一点,但我对这个解决方案不感兴趣。

    1 回复  |  直到 14 年前
        1
  •  3
  •   John Pickup    14 年前

    在标准SQL中没有直接实现这一点的方法。Oracle有“start with”、“connect by”语法,并通过“level”支持它。

    或者,如果可以重新建模数据,则可以使用嵌套集: http://en.wikipedia.org/wiki/Nested_set_model