![](/img/trans.png)
[英]How to select the first part of string that has a match in list of values in PostgreSQL?
[英]How to select values as a list in PostgreSQL and Oracle Database?
我有一个表,值如下:
Name App_pgm_apply status
a P1 AP
a P3 DN
a P5 AP
b P2 PE
b P3 AP
c P1 AP
d P2 DN
我想选择具有应用程序的用户作为列表。
a {P1,P3,P5}
b {P2,P3}
c {P1}
d {P2}
有人可以告诉我如何以列表的形式检索值吗?
我在SQL中看到了这一点 。 但是我没有得到如何使用它的PostgreSQL
Postgres具有array_agg
函数:
SELECT name, ARRAY_AGG(app_pgm_apply)
FROM mytable
GROUP BY name
另一方面,Oracle具有listagg
函数:
SELECT name, LISTAGG(app_pgm_apply, ',') WITHIN GROUP (ORDER BY app_pgm_apply)
FROM mytable
GROUP BY name
尝试:
SELECT
Name,
array_to_string(array_agg(App_pgm_apply), ',')) as pgms
FROM
table1
GROUP BY
Name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.