首页 > 解决方案 > SQL Server - 查询不显示列值为空的行

问题描述

我有一个像这样的用户表 -

表视图

我正在使用以下查询来检索教师 ID 为 CSE001、指定不是学生且用户角色不是营销协调员的行 -

查询视图

但这并没有给我我需要的结果,因为我期望得到的 2 行在他们的 UserRole 列中有 null。所以,它什么也不返回。

查询结果

那么,我该如何编写查询,以便即使它们在 UserRole 列中为空,它也会返回我的行?任何人都可以帮助我吗?谢谢...

标签: asp.netsql-server

解决方案


检查 Designation 和 UserRole 是否包含 NULL 值。使用 IS NULL 或 IS NOT NULL 进行此类检查。这是因为您无法将 NULL 与特定值进行比较。

SELECT * FROM Users
WHERE FacultyId = 'CSE001'
AND (Designation <> 'Student' OR Designation IS NULL)
AND (UserRole <> 'Marketing Coordinator' OR UserRole IS NULL)

希望这可以帮助。


推荐阅读