FitTech
@FitTech

Правильно ли понял запрос?

Нужно сделать сортировку такого вида:
| id      | parent  |
| 2043 |    NULL |
| 2044 |    2043 |
| 2045 |    2043 |
| 2049 |    2043 |
| 2047 |    NULL |
| 2048 |    2047 |
| 2043 |    2047 |


Делается это таким выражением:
ORDER BY COALESCE(parent, id), parent IS NOT NULL, id


Правильно ли я понимаю механизм?
* COALESCE находит первое не Null значение
1. Сортируется parent
2. parent ряд вставляется в вверх
parent IS NOT NULL - Что дает is not null в order?
3. Сортирутеся id
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
ploop
@ploop
COALESCE(parent, id) выведет вам id вместо parent, если parent is null
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Что дает is not null в order?
истину или ложь

А сортировка "в словах" выглядит как

сортировать по (parent или id) затем по ненулёвости parent, затем по id

то есть если бы это был excel - то там бы было 3 этажа сортировки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы