我无法使查询有效工作,只查询1个表。以下是表格数据的示例:
ID NAME PARENT_ID SORT_ORDER
1 Home NULL 1
2 Contact NULL 3
3 Service NULL 2
4 Service1 3 0
5 Service3 3 2
6 Service2 3 1
我想要做的是返回此表中的数据,其结果是PARENT_ID出现在带有该ID的结果下,并且所有结果都显示在他们的SORT_ORDER中。以下是我希望查询得出上述数据的方法:
ID NAME PARENT_ID SORT_ORDER
1 Home NULL 1
3 Service NULL 2
4 Service1 3 0
6 Service2 3 1
5 Service3 3 2
2 Contact Null 3
非常欢迎任何反馈,以实现这一目标。
亲切的问候,
保
答案 0 :(得分:0)
如果我理解你的逻辑,你可以使用它:
SELECT
t1.*
FROM
yourtable t1 LEFT JOIN yourtable t2
ON t1.PARENT_ID = t2.ID
ORDER BY
COALESCE(t2.SORT_ORDER, t1.SORT_ORDER),
t1.PARENT_ID IS NOT NULL,
SORT_ORDER
请参阅小提琴here。