在某些数据库应用中,需要从表中检索每个唯一标识符的单行,并连接相应的字段值。例如,给定一个包含以下数据的表:
ID | 列A | 列B |
---|---|---|
TM67 | 4 | 32556 |
TM67 | 9 | 98200 |
TM67 | 72 | 22300 |
TM99 | 2 | 23009 |
TM99 | 3 | 11200 |
期望的输出如下:
ID | 列A | 列B |
---|---|---|
TM67 | 4,9,72 | 32556,98200,22300 |
TM99 | 2,3 | 23009,11200 |
在MySQL中,通常使用GROUP_CONCAT聚合函数来实现此目的。但是,PostgreSQL中没有直接的等效项。
幸运的是,PostgreSQL提供了一些替代机制来达到相同的结果:
<code class="language-sql">SELECT id, string_agg(some_column, ',') FROM the_table GROUP BY id</code>
此方法使用string_agg函数(在PostgreSQL 9.0中引入)将指定列的值聚合到一个逗号分隔的字符串中。GROUP BY子句确保对每个唯一ID分别执行聚合操作。
以上是如何在 PostgreSQL 中连接字段值?的详细内容。更多信息请关注PHP中文网其他相关文章!