有一个表:tab1(id,arg1,arg2) 其中arg1是服务标识,arg2是数字编码,可能的值有:1,2,3 一个服务可以有几个编码,arg1,arg2的组合表中不能重复。
作为 SELECT 查询的结果,有必要在一行中显示与给定服务标识符匹配的所有数字代码。但问题是该行不应该包含代码,而是与这些代码对应的资源,例如 1 - 网站,2 - 电子邮件,3 - 电话
SELECT
ARRAY_TO_STRING(ARRAY(
case
when (select arg2 from tab1 where arg1=111)=1 then 'сайт'
when (select arg2 from tab1 where arg1=111)=2 then 'электронная почта'
when (select arg2 from tab1 where arg1=111)=3 then 'телефон'
end),',')
from tab1 where arg1=111
这对我不起作用
预期结果:111;网站、电子邮件
string_agg 聚合函数是在9.0 版本中引入的。如果需要早期版本,请在问题中指定