【发布时间】:2015-03-25 03:34:16
【问题描述】:
我需要创建一个查询,该查询返回父注释的记录集,它们的子注释列在每个父注释下方,按父(根)注释 ID 排序。
例如,这是我想看到的输出:
我使用了this page 接受的解决方案,是这样的:
SELECT ID, ParentID, Datestamp
FROM ForumMessages
ORDER BY coalesce(ParentID, ID), Datestamp
我的查询结果是:
SELECT NoteID, ParentNoteID, NoteText
FROM dms_Notes
WHERE DocketID = 43477 -- this filter is just to make the resultset smaller
ORDER BY Coalesce(NoteID, ParentNoteID), NoteText
这导致了以下输出。如您所见,id 为 23478 的最后一条记录未列在父级 23471 下方
我也尝试将ORDER BY 切换为ParentNoteID, NoteID,但结果更差:
出了什么问题,为什么这不起作用?我试图将它完全基于公认的解决方案,但它似乎无法正常工作?谢谢。
【问题讨论】:
标签: sql sql-server tsql