MySQL Order По столбцу ASC / DESC, связанному с другим столбцом - PullRequest
0 голосов
/ 31 мая 2018

У меня есть два столбца в базе данных, как это:

ColumnA ColumnB
NULL    1
2       1
NULL    3
1       3
NULL    2
1       2

Я хочу:

Первый шаг , сортировать столбецA, поместив в верхнюю часть строки NULL, затем строки NotNull.Так должно быть:

NULL     1
NULL     3
NULL     2
2        1
1        3
1        2

Второй шаг (что я хочу получить в конце), сортировка columnB, asc columnB, когда columnA равно Null, и desc columnB, когда columnA не NotNull, поэтому должно быть:

NULL     1
NULL     2
NULL     3
1        3
1        2
2        1

Итак, как мне сделать один запрос MySQL, чтобы получить его там?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Я верю, что вы хотите:

select a, b
from t
order by (a is null) desc,  -- put null values on top
         (case when a is null then b end) asc,
         b desc;
0 голосов
/ 31 мая 2018

Как насчет:

select a,b from t order by a, case when a is null then b end, b desc

или, может быть ...

SELECT a,b FROM t ORDER BY a,CASE WHEN a IS NULL THEN b* -1 ELSE b END DESC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...