我目前正在导出查询从Oracle到PostgreSQL,和我被困在这一个是用来目录排序:PostgreSQL的:按名称顺序多层次结构后排序
WITH RECURSIVE R AS (
SELECT ARRAY[ID] AS H
,ID
,PARENTID
,NAME
,1 AS level
FROM REPERTORIES
WHERE ID= (SELECT Min(ID) FROM REPERTORIES)
UNION ALL
SELECT R.H || A.ID
,A.ID
,A.PARENTID
,A.NAME
,R.level + 1
FROM REPERTORIES A
JOIN R ON A.PARENTID = R.ID
)
SELECT NAME
,ID
,PARENTID
, level
FROM R
ORDER BY H
它的部分工作,每个子目录都放在他的父目录或共享相同父目录的目录之后(一个目录可以有子目录,子目录也有子目录等等)
但我还需要排序处于同一级别的目录他们的名字(当然,他们的子目录在他们的旁边)
我该如何做到这一点?
在此先感谢(如果我的英语又硬又遗憾地理解)
编辑:这里是orignial Oracle查询:
SELECT NAME, ID, PARENTID, level
FROM REPERTORIES
CONNECT BY PRIOR ID = PARENTID
START WITH ID = (SELECT Min(ID) FROM REPERTORIES)
ORDER SIBLINGS BY NAME
它说我“在递归查询ORDER BY没有植入”,我试图这样做:/ – Dryster