SQL数据排序 - ORDER BY子句

admin 2023-11-25 542 阅读 0评论

SQL数据库查询中使用order by子句对查询的数据结果进行排序,如按照某字段进行升序排列输出或降序排列输出。        

01

语法结构
SELECT
column_name1
,coulumn_name2
,function(column_name3)
FROM
       table_name
[WHERE Clause]
GROUP BY
 column_name1,column_name2
ORDER BY column_name1 ASC

这里是对上一节GROUP BY子句语法结构的扩展,实际工作中可以直接使用ORDER BY语句。如:

SELECT
column_name1
,coulumn_name2
FROM
       table_name
[WHERE Clause]
ORDER BY column_name1 ASC
  • 可以使用SELECT语句中任何字段来排序,可设定1个排序字段,也可以是多个;

  • 字段后加ASC表示对字段升序排列,加DESC表示对字段降序排列;不指定的话默认是ASC升序。

  • [WHERE Clause] 表示可选,语句中可以有WHERE条件,也可以没有WHERE条件。

02

实例
这里通过表data_learning.product进行举例,data_learning是之前的文章中创建的数据库。该表示例数据如下:

见:

SQL创建数据库和数据表

数据分析师的日常,公众号:数据分析师的日常SQL创建数据库和数据表

2.1 对一个字段进行排序

首先,我们来统计每个价格的商品数量,并按照价格升序排列,SQL如下

-- SELECT
       price
       ,count(*)
FROM
       data_learning.product
GROUP BY
       price    
ORDER BY
       price;

查询结果如下(部分),价格低的会排在前面:

如果要降序排列,那么使用ORDER BY price DESC

2.2 对多个字段进行排序

比如查询data_learning.product表中的的所有数据,优先按照product_name升序排列,再按price降序排列:

-- data_learning.productproduct_namepriceSELECT    
       product_id
       ,product_name
       ,price
FROM
       data_learning.product
ORDER BY
       product_name ASC,price DESC;

询结果如下(部分),从product_name=’T恤’的数据可以看出,当product_name相同时,按price降序排列:

ORDER BY子句后面可以直接跟列名,也可以跟列在查询中的位置数字,比如1,2,3…。如查询data_learning.product表中的的所有数据,优先按price降序排列,再按照product_name升序排列:    

-- data_learning.productpriceproduct_nameSELECT
       product_id
       ,product_name
       ,price
FROM
       data_learning.product
ORDER BY
       3 DESC,2 ASC;

查询结果如下(部分):

在日常工作中,我比较习惯用列位置数字,能少敲一些列名字母。

需要注意的是,不同数据库的排序机制不一样,如果查询的结果和我们期望的排序结果有差异,可以通过设置MySQL中的排序规则,或者在查询语句中指定排序规则来解决。    

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 542人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表