ISNULL()
函数是 SQL Server 中的一个内置函数,用于检查指定的表达式是否为 NULL,如果是,则返回指定的替换值
以下是一个使用 ISNULL()
函数处理联合查询空值的示例:
假设我们有两个表,一个是员工表(Employee),另一个是部门表(Department)。我们想要查询每个员工及其所属部门的名称。但是,有些员工可能没有分配到任何部门,因此部门名称为 NULL。
-- 创建 Employee 表 CREATE TABLE Employee ( EmployeeID INT PRIMARY KEY, Name NVARCHAR(50), DepartmentID INT ); -- 创建 Department 表 CREATE TABLE Department ( DepartmentID INT PRIMARY KEY, DepartmentName NVARCHAR(50) ); -- 插入数据 INSERT INTO Employee (EmployeeID, Name, DepartmentID) VALUES (1, 'Alice', 1), (2, 'Bob', NULL), (3, 'Charlie', 2); INSERT INTO Department (DepartmentID, DepartmentName) VALUES (1, 'HR'), (2, 'IT');
现在,我们将使用联合查询和 ISNULL()
函数来查询每个员工及其所属部门的名称。如果部门名称为 NULL,我们将使用 “Unassigned” 作为默认值。
SELECT E.EmployeeID, E.Name, ISNULL(D.DepartmentName, 'Unassigned') AS DepartmentName FROM Employee E LEFT JOIN Department D ON E.DepartmentID = D.DepartmentID;
这将返回以下结果:
EmployeeID | Name | DepartmentName -----------+----------+---------------- 1 | Alice | HR 2 | Bob | Unassigned 3 | Charlie | IT
在这个例子中,我们使用了 LEFT JOIN
来连接 Employee 和 Department 表。对于那些没有分配部门的员工,DepartmentName
将显示为 NULL。通过使用 ISNULL()
函数,我们可以将这些 NULL 值替换为 “Unassigned”。