在博士后:
select 'test' || null returns null
我原以为它会返回"test".
这是你想要的行为吗?看起来很奇怪,字符串与空值的连接会使整个字符串无效...
参考pg文件:http://www.postgresql.org/docs/9.1/static/functions-string.html
"注意:在PostgreSQL 8.3之前,由于存在从这些数据类型到文本的隐式强制,这些函数也会静默地接受几种非字符串数据类型的值.这些强制已被删除,因为它们经常导致意外行为.但是,字符串连接运算符(| |)仍然接受非字符串输入,只要至少有一个输入是字符串类型,如表9-6所示.对于其他情况,如果需要复制之前的行为,请插入对文本的显式强制."
鉴于此,使用concat字符串函数示例:
concat(str "any" [, str "any" [, ...] ]) text Concatenate all arguments. NULL arguments are ignored. concat('abcde', 2, NULL, 22) >> abcde222
我是应该习惯这种行为,还是应该修正这种行为?