扫码一下
查看教程更方便
sql order by语句用于根据一列或多列按升序或降序对数据进行排序。某些数据库默认按升序对查询结果进行排序。
order by 语句的基本语法如下
select column-list
from table_name
[where condition]
[order by column1, column2, .. columnn] [asc | desc];
可以在 order by 后面指定多个列,使用逗号隔开。确保用来对该列进行排序的任何列都应该在查询列中。
customers 表
---- ---------- ----- ----------- ----------
| id | name | age | address | salary |
---- ---------- ----- ----------- ----------
| 1 | ramesh | 32 | ahmedabad | 2000.00 |
| 2 | khilan | 25 | delhi | 1500.00 |
| 3 | kaushik | 23 | kota | 2000.00 |
| 4 | chaitali | 25 | mumbai | 6500.00 |
| 5 | hardik | 27 | bhopal | 8500.00 |
| 6 | komal | 22 | mp | 4500.00 |
| 7 | muffy | 24 | indore | 10000.00 |
---- ---------- ----- ----------- ----------
以下代码将按 name 和 salary 按升序对结果进行排序
sql> select * from customers
order by name, salary;
结果如下
---- ---------- ----- ----------- ----------
| id | name | age | address | salary |
---- ---------- ----- ----------- ----------
| 4 | chaitali | 25 | mumbai | 6500.00 |
| 5 | hardik | 27 | bhopal | 8500.00 |
| 3 | kaushik | 23 | kota | 2000.00 |
| 2 | khilan | 25 | delhi | 1500.00 |
| 6 | komal | 22 | mp | 4500.00 |
| 7 | muffy | 24 | indore | 10000.00 |
| 1 | ramesh | 32 | ahmedabad | 2000.00 |
---- ---------- ----- ----------- ----------
下面的代码将按 name 按降序对结果进行排序。
sql> select * from customers
order by name desc;
结果如下
---- ---------- ----- ----------- ----------
| id | name | age | address | salary |
---- ---------- ----- ----------- ----------
| 1 | ramesh | 32 | ahmedabad | 2000.00 |
| 7 | muffy | 24 | indore | 10000.00 |
| 6 | komal | 22 | mp | 4500.00 |
| 2 | khilan | 25 | delhi | 1500.00 |
| 3 | kaushik | 23 | kota | 2000.00 |
| 5 | hardik | 27 | bhopal | 8500.00 |
| 4 | chaitali | 25 | mumbai | 6500.00 |
---- ---------- ----- ----------- ----------