首页 >数据库 >mysql教程 >如何在 PostgreSQL SELECT 语句中正确连接列?

如何在 PostgreSQL SELECT 语句中正确连接列?

Barbara Streisand
Barbara Streisand原创
2025-01-12 06:16:47378浏览

How to Properly Concatenate Columns in PostgreSQL SELECT Statements?

在 PostgreSQL SELECT 语句中连接列

在 PostgreSQL SELECT 语句中连接字符字符串时,如果列没有显式转换为文本,则可能会遇到错误。

问题:

表 foo 中有两个字符串列 a 和 b。尝试使用 a || b 或 a || ', ' || b 连接它们会返回 null 或意外结果。

解决方案:

要在 Postgres 中正确连接字符串,至少一个输入必须转换为文本。以下有两种方法可以做到这一点:

  • 将一列转换为文本:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
  • 使用文本分隔符:
<code class="language-sql">SELECT a || ', ' || b AS ab FROM foo;</code>

注意事项:

  • 不建议在非字符串数据类型之间使用连接 (||) 运算符。
  • 对于可能涉及 null 值且结果不应为 null 的情况,请使用 concat_ws() 函数:
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
  • 或者,可以使用 concat() 函数进行无分隔符的连接:
<code class="language-sql">SELECT concat(a, b) AS ab FROM foo;</code>

附加说明:

    • 运算符在 Postgres 中不是有效的字符串连接运算符。
  • 通常不建议使用 character(n) 数据类型来存储字符串。考虑使用 text 或 varchar 代替。

以上是如何在 PostgreSQL SELECT 语句中正确连接列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn