T-SQL Order By子句

精华
小牛编辑
149浏览
2023-03-14

ORDER BY 子句按递增或递减顺序对数据库进行排序。要一次对多个列进行排序,请使用运算符 (,) 运算符分隔列名称。

  • ORDER BY默认按升序对数据进行排序。
  • DESC关键字用于按降序对数据进行排序,ASC关键字用于按升序对数据库进行排序。

ORDER BY子句的语法

SELECT column-list    
FROM table_name/Name of the table  
[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

上面的执行后得到以下结果 -

ID    NAME    AGE    ADDRESS    SALARY
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