MySQL特定的返回值总是像最后一行

时间:2019-02-27 14:27:59

标签: mysql sql select sql-order-by


是否有可能总是像最后一行一样具有某些特定值?例如:

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 :(得分:3)

您可以在CASE中使用ORDER BY

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

答案 1 :(得分:2)

默认情况下,MySQL首先对空值排序(升序时)。但是您可以使用 relabel_configs: - source_labels: ['__meta_ec2_private_ip'] target_label: 'instance' 对它们进行最后排序:

IS NULL

并使用ORDER BY paCountry.NAME IS NULL, paCountry.NAME 将空值替换为“未知”:

COALESCE