SQL ORDER BY 子句的升序排序

2024年8月29日 | 阅读 7 分钟
  • 当我们需要根据 SQL 数据库表中存储的列对记录进行排序时,我们会考虑在 SQL 中使用 ORDER BY 子句。
  • SQL 中的 ORDER BY 子句用于根据表的特定列对记录进行排序。这意味着,首先,在 ORDER BY 子句应用的列中存储的所有值都将被排序。然后,相应的列值将按照我们在上一步中获得的值的顺序显示。
  • 使用 ORDER BY 子句,我们可以根据需要按升序或降序对记录进行排序。当 ASC 关键字与 ORDER BY 子句一起使用时,记录将按升序排序。而 DESC 关键字将按降序对记录进行排序。如果在必须排序记录的列后面没有指定关键字,那么在这种情况下,默认情况下将按升序进行排序。

在编写排序记录的查询之前,让我们先了解一下语法。

按升序对记录进行排序的语法

不使用 ASC 关键字按升序对记录进行排序的语法

让我们通过示例进一步探讨这个主题。我们将使用 MySQL 数据库来编写示例查询。

假设我们有一个包含以下记录的 customers 表:

ID姓名年龄地址工资
1Himani Gupta21Modinagar22000
2Shiva Tiwari22博帕尔21000
3Ajeet Bhargav45Meerut65000
4Ritesh Yadav36Azamgarh26000
5Balwant Singh45瓦拉纳西36000
6Mahesh Sharma26Mathura22000
7Rohit Shrivastav19Ahemdabad38000
8Neeru Sharma29Pune40000
9Aakash Yadav32孟买43500
10Sahil Sheikh35Aurangabad68800

示例 1

编写一个查询,在 customers 表中按客户姓名升序对记录进行排序。

查询

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

您将得到以下输出

ID名称年龄地址薪金
9Aakash Yadav32孟买43500
3Ajeet Bhargav45Meerut65000
5Balwant Singh45瓦拉纳西36000
1Himani Gupta21Modinagar22000
6Mahesh Sharma26Mathura22000
8Neeru Sharma29Pune40000
4Ritesh Yadav36Azamgarh26000
7Rohit Shrivastav19Ahemdabad38000
10Sahil Sheikh35Aurangabad68800
2Shiva Tiwari22博帕尔21000

customers 表中的所有记录均按客户姓名升序显示。

示例 2

编写一个查询,在 customers 表中按地址升序对记录进行排序。

查询

在此 SELECT 查询中,ORDER BY 子句应用于 'Address' 列以对记录进行排序。ORDER BY 子句后面没有使用关键字。因此,记录默认将按升序排序。

您将得到以下输出

ID名称年龄地址薪金
7Rohit Shrivastav19Ahemdabad38000
10Sahil Sheikh35Aurangabad68800
4Ritesh Yadav36Azamgarh26000
2Shiva Tiwari22博帕尔21000
6Mahesh Sharma26Mathura22000
3Ajeet Bhargav45Meerut65000
1Himani Gupta21Modinagar22000
9Aakash Yadav32孟买43500
8Neeru Sharma29Pune40000
5Balwant Singh45瓦拉纳西36000

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

示例 3

编写一个查询,在 customers 表中按客户工资升序对记录进行排序。

查询

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

您将得到以下输出

ID名称年龄地址薪金
2Shiva Tiwari22博帕尔21000
1Himani Gupta21Modinagar22000
6Mahesh Sharma26Mathura22000
4Ritesh Yadav36Azamgarh26000
5Balwant Singh45瓦拉纳西36000
7Rohit Shrivastav19Ahemdabad38000
8Neeru Sharma29Pune40000
9Aakash Yadav32孟买43500
3Ajeet Bhargav45Meerut65000
10Sahil Sheikh35Aurangabad68800

customers 表中的所有记录均按客户工资升序显示。

示例 4

编写一个查询,在 customers 表中按客户年龄升序对记录进行排序。

查询

在此 SELECT 查询中,ORDER BY 子句应用于 'Age' 列以对记录进行排序。ORDER BY 子句后面没有使用关键字。因此,记录默认将按升序排序。

您将得到以下输出

ID名称年龄地址薪金
7Rohit Shrivastav19Ahemdabad38000
1Himani Gupta21Modinagar22000
2Shiva Tiwari22博帕尔21000
6Mahesh Sharma26Mathura22000
8Neeru Sharma29Pune40000
9Aakash Yadav32孟买43500
10Sahil Sheikh35Aurangabad68800
4Ritesh Yadav36Azamgarh26000
5Balwant Singh45瓦拉纳西36000
3Ajeet Bhargav45Meerut65000

customers 表中的所有记录均按客户年龄升序显示。

假设我们有另一个名为 agents 的表,其中包含以下记录

AID名称WorkAreaProfit_PercentContactNumber薪金
1Gurpreet Singh班加罗尔1998967543243000
2Sakshi Kumari金奈5819056734225000
3Prachi Desai孟买2905612343260000
4Shivani MorePune3889423678935500
5Pallavi Singh德里4779809234138700
6Rohini KulkarniAmbala8789094561225670
7Shweta Dixit昌迪加尔6889878645331670
8Sonakshi TiwariUdaipur2980945342125050
9Anushka TripathiUjjain9890912432638000
10Devika Sharma果阿7786452314544050

示例 1

编写一个查询,在 agents 表中按代理姓名升序对记录进行排序。

查询

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

您将得到以下输出

AID名称WorkAreaProfit_PercentContactNumber薪金
9Anushka TripathiUjjain9890912432638000
10Devika Sharma果阿7786452314544050
1Gurpreet Singh班加罗尔1998967543243000
5Pallavi Singh德里4779809234138700
3Prachi Desai孟买2905612343260000
6Rohini KulkarniAmbala8789094561225670
2Sakshi Kumari金奈5819056734225000
4Shivani MorePune3889423678935500
7Shweta Dixit昌迪加尔6889878645331670
8Sonakshi TiwariUdaipur2980945342125050

agents 表中的所有记录均按代理姓名升序显示。

示例 2

编写一个查询,在 agents 表中按代理工资升序对记录进行排序。

查询

在此 SELECT 查询中,ORDER BY 子句应用于 'Salary' 列以对记录进行排序。ORDER BY 子句后面没有使用关键字。因此,记录默认将按升序排序。

您将得到以下输出

AID名称WorkAreaProfit_PercentContactNumber薪金
2Sakshi Kumari金奈5819056734225000
8Sonakshi TiwariUdaipur2980945342125050
6Rohini KulkarniAmbala8789094561225670
7Shweta Dixit昌迪加尔6889878645331670
4Shivani MorePune3889423678935500
9Anushka TripathiUjjain9890912432638000
5Pallavi Singh德里4779809234138700
1Gurpreet Singh班加罗尔1998967543243000
10Devika Sharma果阿7786452314544050
3Prachi Desai孟买2905612343260000

agents 表中的所有记录均按客户工资升序显示。

示例 3

编写一个查询,在 agents 表中按代理的工作区域升序对记录进行排序。

查询

在此 SELECT 查询中,ORDER BY 子句应用于 'WorkArea' 列以对记录进行排序。ORDER BY 子句后面没有使用关键字。因此,记录默认将按升序排序。

您将得到以下输出

AID名称WorkAreaProfit_PercentContactNumber薪金
6Rohini KulkarniAmbala8789094561225670
1Gurpreet Singh班加罗尔1998967543243000
7Shweta Dixit昌迪加尔6889878645331670
2Sakshi Kumari金奈5819056734225000
5Pallavi Singh德里4779809234138700
10Devika Sharma果阿7786452314544050
3Prachi Desai孟买2905612343260000
4Shivani MorePune3889423678935500
8Sonakshi TiwariUdaipur2980945342125050
9Anushka TripathiUjjain9890912432638000

agents 表中的所有记录均按客户工作区域升序显示。

示例 4

编写一个查询,在 agents 表中按代理的利润百分比升序对记录进行排序。

查询

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

您将得到以下输出

AID名称WorkAreaProfit_PercentContactNumber薪金
1Gurpreet Singh班加罗尔1998967543243000
3Prachi Desai孟买2905612343260000
8Sonakshi TiwariUdaipur2980945342125050
4Shivani MorePune3889423678935500
5Pallavi Singh德里4779809234138700
2Sakshi Kumari金奈5819056734225000
7Shweta Dixit昌迪加尔6889878645331670
10Devika Sharma果阿7786452314544050
6Rohini KulkarniAmbala8789094561225670
9Anushka TripathiUjjain9890912432638000

agents 表中的所有记录均按客户利润百分比升序显示。