transform_null_equals
启用将“= NULL”视为“IS NULL”的 GUC
transform_null_equals 是一个 配置参数,它启用将 expr = NULL 的写法视为语法上等同于 expr IS NULL。
transform_null_equals 在 PostgreSQL 7.2 中被添加。
默认
transform_null_equals 的默认值为:off。
用法
在标准的 SQL 中,expr = NULL 总是会评估为 NULL(即未知)。然而,对于某些用例(文档中提到了与 Microsoft Access 的兼容性),可能希望覆盖此行为,并将 expr = NULL 视为语法上等同于 expr IS NULL。
请注意,transform_null_equals 仅影响 expr = NULL(或 NULL = expr),而不影响其他比较运算符或其他计算上等同于涉及等于运算符的表达式的表达式。
按 PostgreSQL 版本详细信息
transform_null_equals (PostgreSQL 19)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 18)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 17)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 16)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 15)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 14)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 13)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 12)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 11)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 10)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.6)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.5)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.4)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.3)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.2)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.1)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 9.0)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 8.4)
| 设置 |
off |
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 8.3)
| 设置 |
|
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
文档:transform_null_equals
transform_null_equals (PostgreSQL 8.2)
| 设置 |
|
| 单位 |
|
| 类别 |
版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 |
将“expr=NULL”视为“expr IS NULL”。 |
| 扩展描述 |
开启后,形式为 expr = NULL(或 NULL = expr)的表达式将被视为 expr IS NULL,即,如果 expr 评估为 NULL 值,则返回 true,否则返回 false。expr = NULL 的正确行为是始终返回 null(未知)。 |
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
文档:transform_null_equals
变更历史
示例
transform_null_equals 的基本用法示例
postgres=# SELECT (1 = NULL) IS NULL;
?column?
----------
t
(1 row)
postgres=# SELECT (NULL = 1) IS NULL;
?column?
----------
t
(1 row)
postgres=# SET transform_null_equals = on;
SET
postgres=# SELECT (1 = NULL) IS NULL;
?column?
----------
f
(1 row)
postgres=# SELECT (NULL = 1) IS NULL;
?column?
----------
f
(1 row)