单列中有多行

本文关键字:单列中 | 更新日期: 2023-09-27 18:00:02

我使用POSTGRESQL 9.1.3作为后端,使用VS2010 c#作为前端。我有两张表如下:

属性

Property_id   Property_details
------------------------------
1             abc
2             xyz

索赔人

Claimer_ID  First_name  Last_Name Property_id
---------------------------------------------
1           aaaa        bbbbb       1
2           cccc        ddddd       2
3           eeee        fffff       1
4           gggg        hhhhh       2

我想要以下输出

Property_id   Claimers
------------------------------------
1             aaa bbbb,eeee ffff
2             ccc dddd,gggg hhhh
3             (may be more than 2 claimers)

这里的claimer是一个单独的列,可以包含1个或多个(最多50个)claimer名称

我该怎么做?

单列中有多行

SELECT  a."Property_id",
        array_agg(b."First_name" || ' ' || b."Last_Name") AS "Claimers"
FROM    Property a
        INNER JOIN Claimers b
            ON a."Property_id" = b."Property_id"
GROUP BY a."Property_id"
  • SQLFiddle演示
  • array_agg