Мне нужно создать запрос, который возвращает набор записей родительских заметок, а их дочерние заметки, перечисленные ниже каждого родителя, упорядоченные родительским (корневым) идентификатором заметки.Проблема с заказом SQL Server родительского/дочернего CTE
Например, вот вывод я хотел бы видеть:
Я использовал принятое решение от 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
В результате этого e ниже. Как вы можете видеть, последняя запись с идентификатором 23478 нет в списке ниже родительского 23471
Я также попытался переключения ORDER BY
вокруг ParentNoteID, NoteID
, но результат был еще дальше от:
Что не так и почему это не работает? Я попытался обосновать его на принятом решении, но он просто не работает должным образом? Благодарю.
'IIF' это ** новая функция ** в SQL Server ** 2012 ** - это не доступны в более ранних версиях –
@gotqn я видел это. Хорошо заметили и спасибо за помощь. – Cheeky