0

我无法让仅查询 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

非常欢迎为实现这一目标提供任何反馈。

亲切的问候,

保罗

4

1 回答 1

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

在此处查看小提琴。

于 2013-03-26T11:33:24.143 回答