我们有一个带有父子关系的表,希望对它进行排序。排序标准是这样的,以便在遍历结果时,与父ID匹配的行应该已经存在:
ID PARENT_ID EF01 EF02 // This is wrong as the row EF02 is after and will fail. EF02 BB AA // here BB < AA AA EF01
问题在于两个密钥都是字符串,因此按ID或PARENT_ID排序将无法解决问题。
对于Oracle,使用分层查询:
select id, parent_id, level from the_table start with parent_id is null connect by prior id = parent_id;