问题:
您希望在 PostgreSQL SELECT 语句中连接两个字符串列(a 和 b)。但是,使用 || 或 ||, ' 运算符直接连接会返回 NULL 值。
解决方案:
PostgreSQL 中字符串类型的连接要求至少一个输入为字符串类型。对于非字符串数据类型,需要显式转换为文本类型才能成功连接。
要连接字符串类型的列,请使用以下语法:
<code class="language-sql">SELECT a || b AS ab FROM foo;</code>
或者,您可以使用 concat_ws() 函数使用可选分隔符组合值:
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
对于非字符串数据类型,在连接之前转换为文本类型,如以下示例所示:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
函数比较:
concat() 和 concat_ws() 的函数波动性均为 STABLE,这意味着其结果可能会根据输入数据而变化。对于不可变函数,请考虑使用自定义不可变克隆或全文搜索等技术。
附加说明:
以上是如何在处理 NULL 值时连接 PostgreSQL SELECT 语句中的列?的详细内容。更多信息请关注PHP中文网其他相关文章!