PostgreSQL 数据行值连接
在关系型数据库操作中,常常需要在获取最终结果前对数据进行处理。一个常见任务是基于公共标识符连接多行的值。在PostgreSQL中,GROUP_CONCAT
函数为此提供了一个简单的解决方案。
GROUP_CONCAT
函数PostgreSQL 9.0版本及以上引入了GROUP_CONCAT
聚合函数,它接收列中的一组值并将它们连接成单个字符串。GROUP_CONCAT
的语法如下:
<code class="language-sql">GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])</code>
参数:
考虑名为 "sample_data" 的以下表格:
id | value |
---|---|
TM67 | 4 |
TM67 | 9 |
TM67 | 72 |
TM99 | 2 |
TM99 | 3 |
要连接每个唯一 "id" 的 "value" 列中的值,我们可以使用如下所示的 GROUP_CONCAT
:
<code class="language-sql">SELECT id, GROUP_CONCAT(value) AS concatenated_values FROM sample_data GROUP BY id;</code>
此查询将产生以下输出:
id | concatenated_values |
---|---|
TM67 | 4,9,72 |
TM99 | 2,3 |
如您所见,每个 "id" 的值已连接并用逗号分隔。
从PostgreSQL 9.0版本开始,可以使用GROUP_CONCAT
的替代语法:
<code class="language-sql">SELECT id, string_agg(value, ',') AS concatenated_values FROM sample_data GROUP BY id;</code>
此语法等效于上面描述的 GROUP_CONCAT
语法。
通过使用 GROUP_CONCAT
或 string_agg
函数,您可以轻松地在PostgreSQL中连接多行数据。 选择哪种语法取决于您的PostgreSQL版本和个人偏好。
以上是如何在 PostgreSQL 中连接多行值?的详细内容。更多信息请关注PHP中文网其他相关文章!