SELECT语句通过ORDER BY子句实现排序,支持ASC升序和DESC降序,默认为ASC;2. 可按单个或多个字段排序,优先级从左到右;3. 可与WHERE子句结合使用,先过滤后排序;4. 注意数据库对大小写和NULL值排序的处理差异。
在 SQL 中,SELECT 语句可以通过 ORDER BY 子句实现按条件排序。排序可以基于一个或多个字段,并支持升序(ASC)和降序(DESC)排列。
基本排序语法
使用 ORDER BY 对查询结果进行排序:
SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];
默认排序方式为升序(ASC),若不指定则自动按升序排列。
按单个字段排序
例如,从用户表中按年龄升序显示数据:
SELECT * FROM users ORDER BY age ASC;
若要按年龄从大到小排列:
SELECT * FROM users ORDER BY age DESC;
按多个字段排序
可同时对多个字段排序,优先级从左到右。比如先按部门升序,再按工资降序:
SELECT * FROM employees ORDER BY department ASC, salary DESC;
系统会先按部门排序,同一部门内再按工资由高到低排列。
结合 WHERE 条件排序
排序常与 WHERE 配合使用,在筛选后排序。例如查找某个城市用户并按注册时间倒序显示:
SELECT * FROM users WHERE city = '北京' ORDER BY register_time DESC;
注意:WHERE 在 ORDER BY 之前执行,先过滤再排序。
基本上就这些。只要掌握 ORDER BY 的用法,就能灵活实现各种排序需求。关键在于明确排序字段、顺序以及是否多级排序。不复杂但容易忽略细节,比如大小写敏感性和 NULL 值的排序位置,具体行为可能因数据库而异。