我需要SQL ORDER BY
子句的帮助。在下面的表格中,我想订购所有商品,以便子商品紧跟其父商品。例如,在下面的列表中,最后一项的ParentId
值为17,并且跟随ParentId
为23的项目,但它实际上应与其他ParentId=17
项目一起显示。< / p>
以类似的方式,如果我稍后添加ParentId = 9
行,则它应显示为ParentId
为9且不在列表末尾的项目。
我应该如何对项目进行排序以获得必要的输出?
答案 0 :(得分:1)
尝试以下查询:
SELECT *
FROM yourtable
ORDER BY
ISNULL(NULLIF(ParentId, 0), Id),
Id /* or maybe Level? */