我正在开发一个查询,我想通过parent和subParent订购,但我有一个问题。订货不对。
继承我的查询
WITH CLASSIFICATION_LIST AS
(
SELECT SUBPARENT.[ID], SUBPARENT.[NAME], SUBPARENT.[PARENTID],
1 AS LEVELCLASSIFICATION, SUBPARENT.[ID] AS HIERARCHY,
SUBPARENT.[ISACTIVE]
FROM {Classification} AS SUBPARENT
WHERE SUBPARENT.[PARENTID] IS NULL
AND (@ShowAll = 1 OR SUBPARENT.ISACTIVE = 1)
UNION ALL
SELECT CHILD.[ID], CHILD.[NAME], CHILD.[PARENTID],
EL.LEVELCLASSIFICATION+1 , EL.HIERARCHY, CHILD.[ISACTIVE]
FROM {Classification} AS CHILD
INNER JOIN CLASSIFICATION_LIST AS EL ON CHILD.[PARENTID] = EL.[ID]
WHERE CHILD.[PARENTID] IS NOT NULL
AND (@ShowAll = 1 OR CHILD.ISACTIVE = 1)
)
SELECT *
FROM CLASSIFICATION_LIST
ORDER BY 5,4,1
继承查询输出:
正确的输出是:
Teste
Filho 1
Filho 2
Computador
Motherboard
Grafica
Memoria
Memoria
我做错了什么?
答案 0 :(得分:0)
请注意您按5,4,1排序,即在您的案例层次结构中,级别,然后是分类ID。 如果您注意到,您会在标记的记录中看到,排序是因为级别不同。
因此,如果您希望以不同的方式对它们进行排序,可能只有分类ID,则应使用ORDER BY 1