📅  最后修改于: 2023-12-03 15:35:04.801000             🧑  作者: Mango
在SQL SERVER中,ORDER BY子句用于以特定列或列组的值排序结果集。默认情况下,如果列中的值为空,则该列将在排序中出现在第一位。然而,有时我们需要将空值放置在最后,而不是最前面。
本文将介绍如何使用SQL SERVER中的ORDER BY子句将空值放在最后。
使用ORDER BY子句按特定列或列组的值排序结果集。
语法如下:
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
在SQL SERVER中,我们可以使用NULLS LAST选项将空值放在最后。要使用此选项,我们需要在ORDER BY子句中指定ASC或DESC,并在其后添加NULLS LAST。
以下是使用NULLS LAST选项的示例:
SELECT student_name, grade
FROM student
ORDER BY grade DESC NULLS LAST;
在上面的示例中,我们从student表中选择student_name和grade列,并使用grade列的值对结果集进行排序。我们使用DESC NULLS LAST选项,以便将空值放在结果集的最后。
让我们通过以下示例进行进一步的演示:
CREATE TABLE Employee
(
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(50),
HireDate DATE
);
INSERT INTO Employee (EmployeeID, EmployeeName, HireDate)
VALUES (1, 'John', '2021-01-01'),
(2, 'Mark', NULL),
(3, 'Amy', '2021-02-01'),
(4, 'David', '2021-03-01'),
(5, 'Peter', NULL),
(6, 'Mary', '2021-04-01');
SELECT EmployeeName, HireDate
FROM Employee
ORDER BY HireDate ASC NULLS LAST;
在上面的示例中,我们创建了一个名为Employee的表,并插入了一些示例数据。然后,我们从Employee表中选择EmployeeName和HireDate列,并按HireDate列的升序值对结果集进行排序。我们还使用ASC NULLS LAST选项,以便将空值放在结果集的最后。
使用NULLS LAST选项,我们可以将空值放在排序结果集的末尾而不是开头。这可以通过在ORDER BY子句中指定ASC或DESC以及NULLS LAST来实现。