Название вопроса может быть немного расплывчатым, поэтому не стесняйтесь менять его на что-то более понятное, я просто не могу найти правильные слова.
Итак, вот моя проблема:
В моей таблице есть 2 важных столбца
- date_added (значение даты и времени)
- special_price (числовой)
special_price либо NULL
или числовое значение в зависимости от специальной цены.
Сейчас я опишу, как я хочу упорядочить свой результат:
Сначала я хочу увидеть все элементы без special_price (NULL
) упорядочено по дате (сначала самое новое), затем я хочу увидеть элементы, для которых есть упорядоченная по дате специальная_ценка (что угодно, кроме NULL
).
Сначала я попробовал это:
SELECT * FROM products ORDER BY special_price, date_added DESC
Это отлично работало для первой части, где все значения special_price были NULL
, но когда он начинался с элементов, у которых упорядоченный special_price упорядочен по значению, которое было в столбце special_price.Это, конечно, имеет смысл, потому что в запросе, который я сначала хотел упорядочить по special_price.
Итак, как я могу позволить запросу игнорировать значение special_price и просто посмотреть, является ли оно NULL
или нет?Таким образом, я получаю все NULL
, упорядоченные по дате, а затем я получаю все NOT NULL
, упорядоченные по дате.