SQL ORDER BY子句

SQL ORDER BY子句

  • 每当我们想要根据SQL数据库中表中存储的列对记录进行排序时,我们就考虑使用SQL中的ORDER BY子句。
  • SQL中的ORDER BY子句将帮助我们根据表的特定列对记录进行排序。这意味着我们应用ORDER BY子句的列中存储的所有值将被排序,并且相应的列值将按照我们在以前步骤中获取值的顺序显示。
  • 使用ORDER BY子句,我们可以根据需求按升序或降序对记录进行排序。只要在ORDER BY子句中使用ASC关键字,记录就会按升序排序。使用DESC关键字将按降序排序记录。
  • 如果在根据其对记录进行排序的列之后未指定关键字,则默认情况下将按升序进行排序。

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

升序排序记录的语法:

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;  

让我们通过示例来更深入地了解这个主题。我们将使用MySQL数据库来编写示例中的查询。

假设我们有以下记录的客户表:

ID NAME AGE ADDRESS SALARY
1 Himani Gupta 21 Modinagar 22000
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:

编写一个查询,将存储在customers表中的客户名称按升序排序。

查询:

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

所有在 customers 表中的记录按照顾客的地址升序显示。

示例 3:

编写一个查询,按照 customers 表中顾客薪水的降序排序记录。

查询:

mysql> SELECT *FROM customers ORDER BY Salary DESC;

在一条SELECT查询中,对列”Salary”应用ORDER BY子句来排序记录。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

所有在customers表中的记录都按照顾客年龄的降序显示。

假设我们有另一个名为agents的表,其记录如下:

AID Name WorkArea Profit_Percent ContactNumber Salary
1 Gurpreet Singh Bangalore 1 9989675432 43000
2 Sakshi Kumari Chennai 5 8190567342 25000
3 Prachi Desai Mumbai 2 9056123432 60000
4 Shivani More Pune 3 8894236789 35500
5 Pallavi Singh Delhi 4 7798092341 38700
6 Rohini Kulkarni Ambala 8 7890945612 25670
7 Shweta Dixit Chandigarh 6 8898786453 31670
8 Sonakshi Tiwari Udaipur 2 9809453421 25050
9 Anushka Tripathi Ujjain 9 8909124326 38000
10 Devika Sharma Goa 7 7864523145 44050

示例1:

编写一个查询,将代理商表中存储的代理商名称记录按升序进行排序。

查询:

mysql> SELECT *FROM agents ORDER BY Name ASC;

在这个SELECT查询中,按照’Name’列进行ORDER BY子句的应用来排序记录。ASC关键字将按照升序对记录进行排序。

你将得到以下输出:

AID Name WorkArea Profit_Percent ContactNumber Salary
9 Anushka Tripathi Ujjain 9 8909124326 38000
10 Devika Sharma Goa 7 7864523145 44050
1 Gurpreet Singh Bangalore 1 9989675432 43000
5 Pallavi Singh Delhi 4 7798092341 38700
3 Prachi Desai Mumbai 2 9056123432 60000
6 Rohini Kulkarni Ambala 8 7890945612 25670
2 Sakshi Kumari Chennai 5 8190567342 25000
4 Shivani More Pune 3 8894236789 35500
7 Shweta Dixit Chandigarh 6 8898786453 31670
8 Sonakshi Tiwari Udaipur 2 9809453421 25050

所有出现在代理商表中的记录都按照代理商名字的升序显示。

示例2:

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

查询:

mysql> SELECT *FROM agents ORDER BY WorkArea DESC;

在一个SELECT查询中,在’WorkArea’列上应用ORDER BY子句对记录进行排序。 DESC关键字将以降序排序记录。

您将得到以下输出:

AID Name WorkArea Profit_Percent ContactNumber Salary
9 Anushka Tripathi Ujjain 9 8909124326 38000
8 Sonakshi Tiwari Udaipur 2 9809453421 25050
4 Shivani More Pune 3 8894236789 35500
3 Prachi Desai Mumbai 2 9056123432 60000
10 Devika Sharma Goa 7 7864523145 44050
5 Pallavi Singh Delhi 4 7798092341 38700
2 Sakshi Kumari Chennai 5 8190567342 25000
7 Shweta Dixit Chandigarh 6 8898786453 31670
1 Gurpreet Singh Bangalore 1 9989675432 43000
6 Rohini Kulkarni Ambala 8 7890945612 25670

所有在agents表中的记录按照客户的工作区域按降序显示。

例子3:

编写查询以按照agents表中代理人薪水的升序对记录进行排序。

查询:

mysql> SELECT *FROM agents ORDER BY Salary;

在SELECT查询中,通过在“Salary”列上应用ORDER BY子句来对记录进行排序。在ORDER BY子句之后没有使用关键字。因此,默认情况下,记录将按升序排序。

您将得到以下输出:

AID Name WorkArea Profit_Percent ContactNumber Salary
2 Sakshi Kumari Chennai 5 8190567342 25000
8 Sonakshi Tiwari Udaipur 2 9809453421 25050
6 Rohini Kulkarni Ambala 8 7890945612 25670
7 Shweta Dixit Chandigarh 6 8898786453 31670
4 Shivani More Pune 3 8894236789 35500
9 Anushka Tripathi Ujjain 9 8909124326 38000
5 Pallavi Singh Delhi 4 7798092341 38700
1 Gurpreet Singh Bangalore 1 9989675432 43000
10 Devika Sharma Goa 7 7864523145 44050
3 Prachi Desai Mumbai 2 9056123432 60000

代理人表中的所有记录按照客户工资的升序显示。

示例4:

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

查询:

mysql> SELECT *FROM agents ORDER BY Salary DESC;

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

您将获得以下输出:

AID Name WorkArea Profit_Percent ContactNumber Salary
3 Prachi Desai Mumbai 2 9056123432 60000
10 Devika Sharma Goa 7 7864523145 44050
1 Gurpreet Singh Bangalore 1 9989675432 43000
5 Pallavi Singh Delhi 4 7798092341 38700
9 Anushka Tripathi Ujjain 9 8909124326 38000
4 Shivani More Pune 3 8894236789 35500
7 Shweta Dixit Chandigarh 6 8898786453 31670
6 Rohini Kulkarni Ambala 8 7890945612 25670
8 Sonakshi Tiwari Udaipur 2 9809453421 25050
2 Sakshi Kumari Chennai 5 8190567342 25000

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程