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 |
客户表中存在的所有记录都按客户年龄的降序显示。
热门文章
优秀文章