为什么在sql中将null
与字符串null
连接起来的结果?它在内部如何运作?
如果将空值与某些文本的列连接起来,如下一行:
select '' || 'a'
输出结果为:
输出='a'
但是,如果您将空值与文本连接起来,结果为null
select null || 'a'
输出结果为:
输出= NULL
所以,
答案 0 :(得分:3)
null
不是空字符串 - 它甚至都不是值。它缺乏。您可以将null
视为"未知",缺失值。因此,用'a'
来表示未知值的结果将是未知的 - 即null
。
答案 1 :(得分:2)
如果你需要在Postgres中连接空值,你应该使用 concat 函数。
根据Postgres文件:
concat(str" any" [,str" any" [,...]])
连接所有参数。忽略NULL参数。
select concat('Lady', 2, NULL, 'More');
返回:
Lady2More
答案 2 :(得分:1)
NULL
表示缺失值,它具有''
的不同含义,其为空白,空白实际上具有值但是为空值,您不能说{{1有价值,它不存在。基于此,NULL
的任何操作都将返回NULL
答案 3 :(得分:1)
NULL是非值,不存在的值。它不是零。它不是一个空字符串。值不能等于NULL。没有两个NULL值相等。
缺少或缺席"数据"如果你必须给它一个含义。
NULL值通常被定义为未知或不适用的值,但即使这些定义也可以讨论。例如,记录可能不包括客户的出生日期,因为销售人员没有询问,或者因为客户不会提供,但客户仍然知道该日期,因此几乎不知道,也不适用。