случай с SQL заказ по предложению - PullRequest
1 голос
/ 19 марта 2012

Мне нужна помощь с предложением SQL ORDER BY. В моей таблице ниже я хочу заказать все элементы, чтобы дочерние элементы следовали сразу за их родительскими элементами. Например, в приведенном ниже списке последний элемент имеет значение ParentId, равное 17, и следует за элементом, у которого ParentId равно 23, но на самом деле он должен отображаться вместе с другими элементами ParentId=17.

enter image description here

Аналогичным образом, если позже я добавлю строку с ParentId = 9, она должна появиться с элементами, чей ParentId равен 9, а не в конце списка.

Как мне отсортировать мои вещи, чтобы получить необходимый результат?

1 Ответ

1 голос
/ 20 марта 2012

Попробуйте следующий запрос:

SELECT *
FROM yourtable
ORDER BY
  ISNULL(NULLIF(ParentId, 0), Id),
  Id  /* or maybe Level? */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...