transform_null_equals

启用将“= NULL”视为“IS NULL”的 GUC

transform_null_equals 是一个 配置参数,它启用将 expr = NULL 的写法视为语法上等同于 expr IS NULL

transform_null_equalsPostgreSQL 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)

分类

兼容性, GUC 配置项

另请参阅

array_nulls

反馈

提交任何关于“transform_null_equals”的评论、建议或更正请 在此