親がいない人がnull
を持っていた場合 parent
で 列、あなたのステートメントは非常に単純になります:
SELECT id, name, parent FROM categories order by coalesce(parent, id), id;
0
を主張する場合 親がいないことを表す場合は、より詳細なCASE WHEN ... THEN ...
を使用できます。 ステートメント。
編集:
-- Sorting by name instead
select a.id, a.name, a.parent
from categories a left join categories b on a.parent=b.id
order by coalesce(b.name, a.name), a.name