假设我的数据库中有以下行:
1
0
5
2
0
3
3
5
0
5
我想对我的字段进行排序,我需要首先返回值不为零值的字段,当值为零值时,排序的行应该如下所示
1
5
2
3
3
5
5
0
0
0
我不想按数字排序,我想最后显示0值,
我有这个代码,但它是按数字排序的:
ORDER BY cASE WHEN num_mojud = 0 THEN num_mojud END ASC,CASE WHEN num_mojud > 0 THEN num_mojud END ASC
or
ORDER BY IF (num_mojud = 0, 9999999, num_mojud )
我怎么能这么做?
3条答案
按热度按时间qybjjes11#
在mysql中,可以使用两个键进行排序。请注意,sql表表示无序集。因此,简单地说,您可以通过按值排序(假设值为非负数)将零放在第一位:
那似乎不是你想要的。通过执行以下操作,可以将零放在第一位,其余的按任意顺序排列:
mysql将布尔值视为数字,“1”表示真,“0”表示假。因此
desc
按键排序。通过执行以下操作,可以将零放在第一位,其余的按随机顺序排列:
如果列具有所需的顺序,则可以将零放在第一位,并保留其余的顺序:
dgjrabp22#
您可以选择
num_mojud
从自定义表。第一个:
SELECT num_mojud FROM tableName WHERE num_mojud > 0
获取大于0的所有数字秒1:SELECT num_mojud FROM tableName WHERE num_mojud = 0
所有数字都等于0uwopmtnx3#