Как я могу УПОРЯДОЧИТЬ BY в соответствии с некоторой логической схемой?

#sql #sorting #boolean

#sql #сортировка #логическое

Вопрос:

Допустим, у меня есть столбцы ‘a’ и ‘b’. Запись считается «готовой», если !a || b . Как я могу отсортировать по этому условию готовности? Я действительно устал от SQL и не могу вспомнить, какой был бы лучший способ сделать это. Я предполагаю, что я мог бы добавить столбец с логическим результатом, а затем отсортировать по этому столбцу, но я пробовал поиск и, похоже, не могу найти то, что ищу.

Комментарии:

1. Какую СУБД вы используете? Некоторые поддерживают логические значения так, как другие этого не делают.

Ответ №1:

 order by case when !a || b then 0 else 1 end
  

Ответ №2:

Вы можете поместить выражения в ORDER BY предложение.

 ORDER BY (!a || b) ASC
  

Ответ №3:

Итак, вы просто хотите, чтобы все строки, где !a или b сначала имеют значение true? Если да, то упорядочивайте по !a, а затем по b.