我是Java应用程序的上下文我正在使用SQLIte来保存一些数据。我的一个SQL表具有以下结构
CREATE TABLE containers (ID INT PRIMARY KEY, NAME TEXT, PARENT_ID INT)
我需要按层次结构级别检索所有容器 ORDERED 。我想先没有父母的所有容器(PARENT_ID == -1),然后是1祖先,然后是2祖先等......
有没有办法用SQL请求(如下所示)以这种方式排序ResultSet
对象。
SELECT * from container ORDER BY (**"What to put here ???"**)
编辑 我知道我以后可以用Java做到这一点,但我对此解决方案不感兴趣。
答案 0 :(得分:3)
在标准SQL中无法直接实现此目的。 Oracle具有“start with”,“connect by”语法,并通过“level”支持它。
或者,如果您可以重新构建数据,则可以改为使用嵌套集:http://en.wikipedia.org/wiki/Nested_set_model