vfc*_*sts 3 postgresql operator
我在 Postgres 中使用||运算符连接一些列运行查询,似乎其中一列为空,整个结果为空。这是正常||行为吗?
我的意思是“空白” NULL。
取决于“空白”的含义,NULL或空字符串。
如果这意味着NULL,那么是的,这是正常的。SELECT 'ab' || NULL ;将返回空值。
如果它意味着一个空字符串,那么不。SELECT 'ab' || '' ;会回来'ab'。
为避免此问题,您可以使用以下命令将空值转换为空字符串COALESCE():
SELECT
COALESCE(str1, '') || COALESCE(str2, '') || ... || COALESCE(strN, '')
Run Code Online (Sandbox Code Playgroud)
或使用CONCAT()或CONCAT_WS()函数 - 忽略空值:
SELECT
CONCAT(str1, str2, ..., strN)
SELECT
CONCAT_WS('', str1, str2, ..., strN)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
584 次 |
| 最近记录: |