Mysql конкретное возвращаемое значение всегда, как в последней строке - PullRequest
0 голосов
/ 27 февраля 2019


Возможно, есть какое-то конкретное значение, всегда похожее на последний ряд?Например:

SELECT IF(paCountry.NAME IS NULL,'Unknown',paCountry.NAME) AS countryName
FROM Table
ORDER BY paCountry.NAME

Это возвращает некоторые значения, такие как:
A
B
Неизвестно
C
D

И желание всегда иметь «Неизвестно», как последний возвращенный ряд.так что это должно выглядеть так:
A
B
C
D
Неизвестно

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

По умолчанию MySQL сначала сортирует нулевые значения (в порядке возрастания).Но вы можете использовать IS NULL, чтобы отсортировать их последними:

ORDER BY paCountry.NAME IS NULL, paCountry.NAME

И использовать COALESCE для замены нулевых значений на «Неизвестно»:

SELECT COALESCE(paCountry.NAME, 'Unknown') AS countryName
FROM Table
ORDER BY paCountry.NAME IS NULL, paCountry.NAME
0 голосов
/ 27 февраля 2019

Вы можете использовать CASE в ORDER BY:

ORDER BY CASE WHEN countryName = 'Unknown' THEN 1 ELSE 0 END, countryName  
...