适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric中的SQL分析端点
Microsoft Fabric中的仓库
Microsoft Fabric中的SQL数据库
NULL指示该值未知。 空值不同于空白或零值。 没有两个相等的空值。 两个 null 值之间的比较,或 null 值和任何其他值之间的比较,返回未知,因为每个 NULL 值的值未知。
空值一般表示数据未知、不适用或将在以后添加。 例如,客户下订单时,可能不知道客户的中间首字母缩写。
Consider:
若要测试查询中的 null 值,请使用
IS NULL或IS NOT NULL子句。WHERE可以通过在语句中
NULL显式说明INSERT或UPDATE将列退出INSERT语句,将 null 值插入到列中。Null 值不能用作将表中的一行与表中另一行区分开所需的信息。 示例包括主键,或用于分发行的信息,例如分发键。
Remarks
当数据中存在 null 值时,逻辑运算符和比较运算符可能会返回第三个结果,UNKNOWN而不是仅返回或TRUE仅FALSE返回。 这种对三值逻辑的需要是导致许多应用程序出错的根源。 包含返回UNKNOWN的布尔表达式UNKNOWN中的逻辑运算符,除非运算符的结果不依赖于UNKNOWN表达式。 下面这些表提供了此行为的示例。
下表显示了将运算符应用于两个布尔表达式的结果,其中一个 AND 表达式返回 UNKNOWN。
| 表达式1 | 表达式2 | Result |
|---|---|---|
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
FALSE |
下表显示了将运算符应用于两个布尔表达式的结果,其中一个 OR 表达式返回 UNKNOWN。
| 表达式1 | 表达式2 | Result |
|---|---|---|
TRUE |
UNKNOWN |
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |