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 |