1. 简介
在SQL Server中,我们可以使用ORDER BY子句对查询结果进行排序。默认情况下,ORDER BY子句按照升序进行排序,但我们也可以指定降序排序。在本文中,我们将介绍如何使用ORDER BY子句按行排序。
2. ORDER BY子句
ORDER BY子句用于指定查询结果的排序方式。它可以用来对一个或多个列进行排序,并且可以指定每个列的排序方式(升序或降序)。
2.1 单列排序
如果我们只需要对查询结果按照一个列进行排序,可以使用以下语法:
SELECT 列名1, 列名2, ...
FROM 表名
ORDER BY 列名;
其中,列名表示要排序的列名。如果想要按照降序排序,可以在列名后面加上DESC关键字:
SELECT 列名1, 列名2, ...
FROM 表名
ORDER BY 列名 DESC;
2.2 多列排序
如果我们需要对查询结果按照多个列进行排序,可以使用以下语法:
SELECT 列名1, 列名2, ...
FROM 表名
ORDER BY 列名1, 列名2, ...;
其中,列名1, 列名2, ...表示要排序的列名列表。这里的排序优先级按照列名的顺序依次增加。如果想要对某个列按照降序排序,可以在列名后面加上DESC关键字。
3. 实例演示
为了演示如何在SQL Server中使用ORDER BY子句按行排序,我们将使用以下员工表:
CREATE TABLE Employees (
ID int,
Name varchar(255),
Age int,
Salary decimal(10,2)
);
INSERT INTO Employees (ID, Name, Age, Salary)
VALUES (1, 'John', 35, 10000.00),
(2, 'Mary', 28, 8000.00),
(3, 'Bob', 45, 12000.00),
(4, 'Jane', 22, 5000.00);
3.1 按照单列排序
我们先按照年龄对员工表进行升序排序:
SELECT *
FROM Employees
ORDER BY Age;
输出结果如下:
ID Name Age Salary
---------------------
4 Jane 22 5000.00
2 Mary 28 8000.00
1 John 35 10000.00
3 Bob 45 12000.00
接下来,我们按照工资降序排序:
SELECT *
FROM Employees
ORDER BY Salary DESC;
输出结果如下:
ID Name Age Salary
---------------------
3 Bob 45 12000.00
1 John 35 10000.00
2 Mary 28 8000.00
4 Jane 22 5000.00
3.2 按照多列排序
现在,我们按照年龄升序和工资降序的顺序对员工表进行排序:
SELECT *
FROM Employees
ORDER BY Age, Salary DESC;
输出结果如下:
ID Name Age Salary
---------------------
4 Jane 22 5000.00
2 Mary 28 8000.00
1 John 35 10000.00
3 Bob 45 12000.00
这里的排序规则是先按照年龄升序排序,然后在每个年龄组内按照工资降序排序。
4. 总结
ORDER BY子句是SQL Server中用于指定查询结果排序方式的重要子句。我们可以使用它来按照单列或多列进行排序,并且可以指定每个列的排序方式。在实际开发中,我们经常会用到ORDER BY子句来对查询结果进行排序。