mysql - MySQL ORDER BY 两个子句(降序和升序)
问题描述
我有这张桌子:
create table products(name text, quantity int);
insert into products values ("A", 10);
insert into products values ("B", 0);
insert into products values ("C", 15);
insert into products values ("D", 0);
insert into products values ("E", 17);
我想按产品名称订购,但将产品quantity = 0
放在底部,如下所示:
name quantity
A 10
C 15
E 17
B 0
D 0
我试过了:
select * from products order by quantity desc, name asc;
但它虽然正确地保持quantity = 0
在底部,但名称顺序却相反。ORDER BY
在这种情况下使用正确的东西吗?
解决方案
试试这个:
select * from products
order by case when quantity = 0 then "z" else name end asc;
推荐阅读
- google-drive-api - 刷新访问令牌时出现未经授权的客户端错误
- php - PHP 邮件什么都不做
- java - LinkedList 和 TreeMap:compareTo 还是 equals?
- c# - 用各种长度的文本覆盖控制台行
- java - 如果选择了从下拉列表中选择的选项,如何断言。硒。页面对象模型
- c# - 静态类方法重载使用会导致编译器错误
- amazon-web-services - AWS Visibility 超时是否保证在此期间不传递消息
- python - VectorError:xlGetChannelIndex 失败(XL_ERR_HW_NOT_PRESENT)
- javascript - 点击后关闭侧边菜单
- java-8 - java8 Streams与java中的集合有何不同