SQL 的order by

本文详细介绍了 SQL 语句中 ORDER BY 子句的使用方法,包括升序(ASC)与降序(DESC)标识的应用,ORDER BY 在 SQL 语句中的正确位置,以及如何实现多列排序。此外,还解释了当遇到相同值时,如何利用第二排序键进一步细化排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.升序降序的标识

升序ASC(默认)

降序DESC

2.order by 在sql语句中的位置

order by 一定要在where 语句的后面

因为通过where 先过滤之后,然后在order by 进行数据的排序

3,order by 可实现多列排序

例如

order by 字段一,字段二

https://img-blog.youkuaiyun.com/20171212172407265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZTM4NjI2NTZl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

排序有两个键值啊,先按第一个排序,如果第一个相同才按第二排序啊!总体顺序还是以第一个字段顺序为主,只不过如果第一个字段有相同的话再根据第二个字段排


### SQL `ORDER BY` 使用方法 #### 基本语法 `ORDER BY` 语句用于对结果集按照一个或多个列进行排序。此子句通常位于SQL查询的结尾位置[^1]。 ```sql SELECT * FROM table_name ORDER BY column_name; ``` 对于更复杂的排序需求,可以指定升序 (`ASC`) 或降序 (`DESC`) 排序方向: ```sql SELECT * FROM employees ORDER BY salary DESC, name ASC; ``` 上述命令先按薪资降序排列员工记录,如果两个或多个人有相同的工资,则再依据姓名字母顺序升序排列他们[^2]。 #### 计算字段排序 当涉及到基于计算得出的新字段时,可以在 `ORDER BY` 中直接引用该计算表达式或是之前赋予它的别名来进行排序操作。不过需要注意的是,在不同的数据库管理系统里,这种做法的支持程度有所差异,有时可能需要通过重复完整的表达式或者采用子查询的方式来实现预期效果[^3]。 例如,假设有一个包含月收入(`monthly_income`)的数据表,想要获取所有人的年收入并依其高低次序展示出来: ```sql -- 方法一:使用别名 SELECT monthly_income * 12 AS annual_salary FROM income_data ORDER BY annual_salary; -- 方法二:不适用别名而是直接写入公式 SELECT monthly_income * 12 as annual_salary FROM income_data ORDER BY monthly_income * 12; ``` #### 字符串数据类型的处理 对于字符型数据,默认情况下会根据字典顺序(即ASCII码值大小)来进行比较和排序。这意味着大写字母会被认为小于小写字母,并且特殊符号也会参与其中。因此,在设计涉及文本信息的应用程序逻辑时应考虑到这一点。 ```sql SELECT first_name FROM users ORDER BY first_name; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值