在Postgres:
select 'test' || null returns null
Run Code Online (Sandbox Code Playgroud)
我原以为它会返回'测试'.
这是理想的行为吗?使用null值进行字符串连接会使整个字符串无效,这似乎很奇怪......
参考pg docs:http://www.postgresql.org/docs/9.1/static/functions-string.html
"注意:在PostgreSQL 8.3之前,由于存在从这些数据类型到文本的隐式强制,这些函数也会默默地接受几种非字符串数据类型的值.这些强制被删除了,因为它们经常引起令人惊讶的行为. ,字符串连接运算符(||)仍然接受非字符串输入,只要至少有一个输入是字符串类型,如表9-6所示.对于其他情况,如果需要,请在文本中插入显式强制复制以前的行为."
鉴于此,使用他们的concat字符串函数示例:
concat(str"any"[,str"any"[,...]])text连接所有参数.NULL参数被忽略.concat('abcde',2,NULL,22)>> abcde222
我应该习惯'||'来解决这个问题 串联还是这个应该修复的东西?