SQL Order By

每当我们想根据存储在 SQL 数据库表中的列对记录进行排序时,我们就会考虑在 SQL 中使用 ORDER BY 子句。

SQL 中的 ORDER BY 子句将帮助我们根据表的特定列对记录进行排序。这意味着存储在我们应用 ORDER BY 子句的列中的所有值都将被排序,并且相应的列值将按照我们在前面步骤中获取值的顺序显示。

使用 ORDER BY 子句,我们可以根据我们的要求按升序或降序对记录进行排序。每当ASC 关键字与 ORDER by 子句一起使用时,记录将按升序排序。DESC 关键字将按降序对记录进行排序。

如果在我们必须对记录进行排序的列之后没有指定关键字,在这种情况下,默认情况下将按升序进行排序。

一、SQL Order By 语法

按升序对记录进行排序

SELECT ColumnName1,...,ColumnNameN FROM TableName  ORDER BY ColumnName ASC; 

按降序对记录进行排序

SELECT ColumnName1,...,ColumnNameN FROM TableName  ORDER BY ColumnNameDESC;    

在不使用 ASC 关键字的情况下按升序对记录进行排序

SELECT ColumnName1,...,ColumnNameN FROM TableName  ORDER BY ColumnName;  

二、SQL Order By 示例

我们将使用 MySQL 数据库来编写示例中的查询。

考虑我们有带有以下记录的客户表:

ID NAME AGE ADDRESS SALARY
2 Shiva Tiwari 22 Bhopal 21000
3 Ajeet Bhargav 45 Meerut 65000
4 Ritesh Yadav 36 Azamgarh 26000
5 Balwant Singh 45 Varanasi 36000
6 Mahesh Sharma 26 Mathura 22000
7 Rohit Shrivastav 19 Ahemdabad 38000
8 Neeru Sharma 29 Pune 40000
9 Aakash Yadav 32 Mumbai 43500
10 Sahil Sheikh 35 Aurangabad 68800

示例1

编写一个查询,按照客户表中存储的客户姓名的升序对记录进行排序。

mysql> SELECT *FROM customers ORDER BY Name ASC;  

在 SELECT 查询中,对列“Name”应用 ORDER BY 子句以对记录进行排序。ASC 关键字将按升序对记录进行排序。

您将获得以下输出:

ID NAME AGE ADDRESS SALARY
9 Aakash Yadav 32 Mumbai 43500
3 Ajeet Bhargav 45 Meerut 65000
5 Balwant Singh 45 Varanasi 36000
1 Himani Gupta 21 Modinagar 22000
6 Mahesh Sharma 26 Mathura 22000
8 Neeru Sharma 29 Pune 40000
4 Ritesh Yadav 36 Azamgarh 26000
7 Rohit Shrivastav 19 Ahemdabad 38000
10 Sahil Sheikh 35 Aurangabad 68800
2 Shiva Tiwari 22 Bhopal 21000

客户表中的所有记录都以客户姓名的升序显示。

示例2

编写一个查询,按照客户表中存储的地址的升序对记录进行排序。

mysql> SELECT *FROM customers ORDER BY Address; 

在 SELECT 查询中,将 ORDER BY 子句应用于“Address”列以对记录进行排序。ORDER BY 子句后不使用关键字。因此,默认情况下,记录将按升序排序。

您将获得以下输出:

ID NAME AGE ADDRESS SALARY
7 Rohit Shrivastav 19 Ahemdabad 38000
10 Sahil Sheikh 35 Aurangabad 68800
4 Ritesh Yadav 36 Azamgarh 26000
2 Shiva Tiwari 22 Bhopal 21000
6 Mahesh Sharma 26 Mathura 22000
3 Ajeet Bhargav 45 Meerut 65000
1 Himani Gupta 21 Modinagar 22000
9 Aakash Yadav 32 Mumbai 43500
8 Neeru Sharma 29 Pune 40000
5 Balwant Singh 45 Varanasi 36000

客户表中的所有记录都按客户地址的升序显示。

示例3

编写一个查询,按照客户表中存储的客户工资的降序对记录进行排序。

mysql> SELECT *FROM customers ORDER BY Salary DESC; 

在 SELECT 查询中,ORDER BY 子句应用于列 "Salary" 对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将获得以下输出:

ID NAME AGE ADDRESS SALARY
10 Sahil Sheikh 35 Aurangabad 68800
3 Ajeet Bhargav 45 Meerut 65000
9 Aakash Yadav 32 Mumbai 43500
8 Neeru Sharma 29 Pune 40000
7 Rohit Shrivastav 19 Ahemdabad 38000
5 Balwant Singh 45 Varanasi 36000
4 Ritesh Yadav 36 Azamgarh 26000
6 Mahesh Sharma 26 Mathura 22000
1 Himani Gupta 21 Modinagar 22000
2 Shiva Tiwari 22 Bhopal 21000

客户表中存在的所有记录都按客户工资的降序显示。

示例4

编写一个查询以按照客户表中存储的客户年龄的降序对记录进行排序。

mysql> SELECT *FROM customers ORDER BY Age DESC;

在 SELECT 查询中,对列“Age”应用 ORDER BY 子句以对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将获得以下输出:

ID NAME AGE ADDRESS SALARY
3 Ajeet Bhargav 45 Meerut 65000
5 Balwant Singh 45 Varanasi 36000
4 Ritesh Yadav 36 Azamgarh 26000
10 Sahil Sheikh 35 Aurangabad 68800
9 Aakash Yadav 32 Mumbai 43500
8 Neeru Sharma 29 Pune 40000
6 Mahesh Sharma 26 Mathura 22000
2 Shiva Tiwari 22 Bhopal 21000
1 Himani Gupta 21 Modinagar 22000
7 Rohit Shrivastav 19 Ahemdabad 38000

客户表中存在的所有记录都按客户年龄的降序显示。 

热门文章

优秀文章