没有值的字段称为具有 NULL 值的字段。要测试字段的 NULL 值,请使用 SQL Server (Transact-SQL) IS NULL 关键字,即判断字段是否为空。如果找到 NULL 值,则返回 TRUE,否则返回 FALSE。
语法
在 SQL Server (Transact-SQL) 中使用 IS NULL 关键字的语法如下:
SELECT column1, column2, column3, ...
FROM table_name
WHERE column_name IS NULL;
示例:
考虑一个数据库,其中包含一个名为 Employee 的表,其中包含以下记录:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 2800 | |
4 | Kim | Amsterdam | 3100 | |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |
要选择 Employee 表中 Age 为空的所有记录,查询如下。
SELECT * FROM Employee
WHERE Age IS NULL;
这将产生如下所示的结果:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
3 | Jo | Paris | 2800 | |
4 | Kim | Amsterdam | 3100 |
获取 Employee 表中的所有记录,其中 Age不为空,查询如下:
SELECT * FROM Employee
WHERE Age IS NOT NULL;
这将产生以下结果:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |
要删除 Employee 表中 Age 为空的所有记录,可以使用以下查询:
DELETE FROM Employee
WHERE Age IS NULL;
-- 查看结果
SELECT * FROM Employee;
这将产生结果如下:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |