SQL ORDER BY 子句与 DESCENDING ORDER

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

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

以降序排序记录的语法

让我们通过示例进一步探讨这个主题。我们将使用 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 查询中,对 'Name' 列应用了 ORDER BY 子句来对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将得到以下输出

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

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

示例 2

编写一个查询以按 customers 表中存储的地址降序对记录进行排序。

查询

在此 SELECT 查询中,对 'Address' 列应用了 ORDER BY 子句来对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将得到以下输出

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

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

示例 3

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

查询

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

您将得到以下输出

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

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

示例 4

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

查询

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

您将得到以下输出

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

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 查询中,对 'Name' 列应用了 ORDER BY 子句来对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将得到以下输出

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

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

示例 2

编写一个查询以按 agents 表中存储的代理工资降序对记录进行排序。

查询

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

您将得到以下输出

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

agents 表中的所有记录都按代理工资降序显示。

示例 3

编写一个查询以按 agents 表中存储的代理工作区域降序对记录进行排序。

查询

在此 SELECT 查询中,对 'WorkArea' 列应用了 ORDER BY 子句来对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将得到以下输出

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

agents 表中的所有记录都按代理工作区域降序显示。

示例 4

编写一个查询以按 agents 表中存储的代理利润百分比降序对记录进行排序。

查询

在此 SELECT 查询中,对 'Profit_Percent' 列应用了 ORDER BY 子句来对记录进行排序。DESC 关键字将按降序对记录进行排序。

您将得到以下输出

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

agents 表中的所有记录都按代理利润百分比降序显示。


下一主题SQL 多列排序