T-SQL ORDER BY
ORDER BY 子句以递增或递减方式对数据库进行排序。要同时排序多个列,请使用(,)运算符将列名分隔开。
- ORDER BY 默认以升序对数据进行排序。
 - DESC 关键字用于以降序对数据进行排序,而 ASC 关键字用于以升序对数据库进行排序。
 
ORDER BY 子句的语法:
SELECT column-list  
FROM table_name/表名
[WHERE condition]  
[ORDER BY column1, column2, column3 ..columnN] [ASC | DESC];
这里:table_name:表名。
column_name:数据库列。
|:使用 ASC 或 DESC 以升序或降序排序
例如:
考虑以下具有如下记录的 CUSTOMERS 表 –
| ID | NAME | AGE | ADDRESS | SALARY | 
|---|---|---|---|---|
| 01 | William | 32 | Karachi | 72000 | 
| 02 | Avery | 24 | London | 34000 | 
| 03 | Jackson | 34 | Paris | 12000 | 
| 04 | Harper | 20 | United state | 15000 | 
| 05 | Ella | 22 | Islamabad | 33000 | 
| 06 | Monty | 23 | Turkey | 42000 | 
| 07 | Mason | 26 | Saudi | 50500 | 
示例1:
以下命令是一个示例,它按 NAME 和 SALARY 以升序对结果进行排序。
SELECT * FROM CUSTOMERS 
ORDER BY NAME;
该命令生成以下输出。
| ID | NAME | AGE | ADDRESS | SALARY | 
|---|---|---|---|---|
| 02 | Avery | 24 | London | 72000 | 
| 05 | Ella | 22 | Islamabad | 34000 | 
| 04 | Harper | 20 | New York | 12000 | 
| 03 | Jackson | 34 | Paris | 15000 | 
| 07 | Mason | 26 | Saudi Arabia | 33000 | 
| 06 | Monty | 23 | Turkey | 42000 | 
| 01 | William | 32 | Karachi | 50500 | 
示例2:
以下命令是一个示例,它按 AGE 以降序对结果进行排序。
SELECT * FROM CUSTOMERS 
ORDER BY AGE DESC
上述命令将产生以下效果?
| ID | NAME | AGE | ADDRESS | SALARY | 
|---|---|---|---|---|
| 03 | Jackson | 34 | Paris | 50500 | 
| 07 | William | 32 | Karachi | 42000 | 
| 01 | Mason | 26 | Saudi Arabia | 33000 | 
| 02 | Avery | 24 | London | 15000 | 
| 06 | Monty | 23 | Turkey | 12000 | 
| 05 | Ella | 22 | Islamabad | 34000 | 
| 04 | Harper | 20 | New York | 72000 | 
示例3:
此命令按 ADDRESS 以升序对结果进行排序。
SELECT * FROM CUSTOMERS 
ORDER BY ADDRESS ASC
该命令生成以下输出。
| 05 | Ella | 22 | Islamabad | 33000 | 
|---|---|---|---|---|
| 01 | William | 32 | Karachi | 72000 | 
| 02 | Avery | 24 | London | 34000 | 
| 03 | Jackson | 34 | Paris | 12000 | 
| 07 | Mason | 26 | Saudi | 50500 | 
| 06 | Monty | 23 | Turkey | 42000 | 
| 04 | Harper | 20 | United state | 15000 | 
极客教程