gpt4 book ai didi

mysql - 查询一行的非空值 first asc before empty

转载 作者:可可西里 更新时间:2023-11-01 09:03:37 25 4
gpt4 key购买 nike

假设我的fruits 表中有这些记录:

id  | name   | order
----|--------|-------
1 | Apple | 1
2 | Banana | null
3 | Orange | 2
4 | Grapes | null

我应该进行什么查询才能使结果如下所示:

id  | name   | order
----|--------|-------
1 | Apple | 1
3 | Orange | 2
2 | Banana | null
4 | Grapes | null

基本上我希望那些具有非空 order 值的记录位于顶行,然后是那些具有空 order 的记录按字母顺序排列。我怎样才能完成这样的任务?

最佳答案

你可以使用 ISNULL :

If expr is NULL, ISNULL() returns 1, otherwise it returns 0.

SELECT id, name, `order`
FROM fruits
ORDER BY ISNULL(`order`), `order`, name;

SqlFiddleDemo

输出:

╔═════╦═════════╦════════╗
║ id ║ name ║ order ║
╠═════╬═════════╬════════╣
║ 1 ║ Apple ║ 1 ║
║ 3 ║ Orange ║ 2 ║
║ 2 ║ Banana ║ (null) ║
║ 4 ║ Grapes ║ (null) ║
╚═════╩═════════╩════════╝

关于mysql - 查询一行的非空值 first asc before empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35742163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com