
Order by 是 SQL 中的一个子句。它用于按升序或降序对查询的结果集进行排序。它可以使用一列或多列进行排序。在本文中,我们将讨论 MS SQL Server 中的 Order by 子句。
语法
在 MS SQL Server 中使用 Order by 子句的语法如下 –
%ign%ignore_a_1%re_pre_1%语法解释
SELECT column1, column2, …:指定我们要从表中检索的列。
FROM table_name:指定我们要从中检索数据的表的名称。
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], …:根据指定列对结果集进行升序或降序排序。
升序排序
默认情况下,Order by 子句按升序对结果集进行排序。要按升序对结果集进行排序,我们不需要显式指定 ASC 关键字。
示例 1
SELECT * FROM customersORDER BY customer_name;
在此示例中,结果集将根据 customer_name 列按升序排序。
示例 2
假设我们有一个名为“Employees”的表,其中包含以下列和数据 –
员工ID
员工姓名
部门
薪资
1
约翰
IT
50000
2
简
销售
45000
3
鲍勃
IT
55000
4
爱丽丝
人力资源
40000
5
汤姆
人力资源
42000
如果我们想从Employees表中检索所有数据并按Salary列升序排序,SQL查询将是 –
SELECT * FROM EmployeesORDER BY Salary;
上述查询的输出为 –
员工ID
员工姓名
部门
薪资
4
爱丽丝
人力资源
40000
5
汤姆
人力资源
42000
2
简
销售
45000
1
约翰
IT
50000
3
鲍勃
IT
55000
按降序排序
要将结果集按降序排序,我们需要在列名后指定 DESC 关键字。
示例 1
SELECT * FROM customersORDER BY customer_name DESC;
在此示例中,结果集将根据 customer_name 列按降序排序。
示例 2
如果我们想要从员工表中检索所有数据并按部门列降序排序,SQL 查询将是 –
SELECT * FROM EmployeesORDER BY Department DESC;
上述查询的输出为
员工ID
员工姓名
部门
薪资
2
简
销售
45000
1
约翰
IT
50000
3
鲍勃
IT
55000
5
汤姆
人力资源
42000
4
爱丽丝
人力资源
40000
按多列排序
我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。
示例 1
SELECT * FROM customersORDER BY country, customer_name;
在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。
示例 2
如果我们想从Employees表中检索所有数据,并首先按Department列升序排序,然后按Salary列升序排序,SQL查询将是 –
SELECT * FROM EmployeesORDER BY Department DESC;
上述查询的输出为
员工ID
员工姓名
部门
薪资
2
简
销售
45000
1
约翰
IT
50000
3
鲍勃
IT
55000
5
汤姆
人力资源
42000
4
爱丽丝
人力资源
40000
按多列排序
我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。
示例 1
SELECT * FROM customersORDER BY country, customer_name;
在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。
示例 2
如果我们想要从Employees表中检索所有数据,并首先按Department列升序排序,然后按Salary列升序排序,那么SQL查询将是
SELECT * FROM EmployeesORDER BY Department ASC, Salary ASC;
上述查询的输出为
员工ID
员工姓名
部门
薪资
4
爱丽丝
人力资源
40000
5
汤姆
人力资源
42000
1
约翰
IT
50000
3
鲍勃
IT
55000
2
简
销售
45000
这些示例演示了如何使用 Order by 子句对 MS SQL Server 中的查询结果集进行排序。
使用 NULL 值排序
当我们使用 Order by 子句时,NULL 值的排序方式有所不同,具体取决于我们是按升序还是降序排序。按升序排列,首先显示 NULL 值,按降序排列,最后显示 NULL 值。
例如
SELECT * FROM customersORDER BY city DESC;
在此示例中,结果集将根据城市列按降序排序。 NULL 值将显示在最后。
结论
MS SQL Server 中的 Order by 子句是一个功能强大的工具,它允许我们根据一个或多个列以升序或降序对查询结果集进行排序。通过了解 Order by 子句的语法和用法,我们可以创建更复杂且更有意义的查询来从数据库中检索数据。
以上就是MS SQL Server 中的排序依据的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/101171.html
微信扫一扫
支付宝扫一扫