假设我的数据库中有这些行:
bill_id bill_portal amount currency
100 20 33 D
100 10 43 D
我想对字段进行排序,我需要先返回值不为零的字段,当值为零时,排序的行应该如下所示
1
0
5
2
0
3
3
5
0
5
我不想按数字排序,我想最后显示0个值,
我已经使用了这段代码,但它按数字排序:
1
5
2
3
3
5
5
0
0
0
我该怎么办?
答案 0 :(得分:3)
在MySQL中,您可以使用两个键进行排序。请注意,SQL表表示无序集。所以,天真地,你可以把零排在第一位,只需按值排序(假设值是非负的):
order by num_mojud
这似乎没有你想要的。您可以通过执行以下操作将第一个零和其余部分放在任意顺序中:
order by (num_mojud = 0) desc
MySQL将布尔值视为数字,“1”表示true,“0”表示false。因此,按键排序desc
。
您可以通过执行以下操作将<0>随机顺序放在第一位。
order by (num_mojud = 0) desc, rand()
如果您的列具有所需的顺序,则可以先将零保留为零并保留其余的顺序:
order by (num_mojud = 0) desc, id
答案 1 :(得分:0)
>>> import example
>>> example.add(1, 2) # add(int, int)
3
>>> example.add(1.5, 2) # add(double, double)
3.5
>>> example.add_long_long(1, 2) # add(long, long)
3
>>> example.add_long_long(1 << 30, 1 << 30) # add(long, long)
2147483648
>>> example.add(1 << 30, 1 << 30) # add(int, int)
-2147483648
答案 2 :(得分:0)
您可以从自定义表格中选择num_mojud
。
第一个:SELECT num_mojud FROM tableName WHERE num_mojud > 0
获取大于0的所有数字
第二个:SELECT num_mojud FROM tableName WHERE num_mojud = 0
所有数字都等于0
SELECT num_mojud
FROM (
(SELECT num_mojud FROM tableName WHERE num_mojud > 0)
UNION
(SELECT num_mojud FROM tableName WHERE num_mojud = 0)
) as myCustomTable