有没有办法在Postgresql中从两个数组设置标志? 我想要的是:
array1[] = {'aa', 'bb', 'cc', 'dd'}
array2[] = {'aa', 'cc'}
result[] = {'aa', '--', 'cc', '--'}
如果只是一个十字路口应该很容易,但我也需要明确的“没有公地”。
提前谢谢!
答案 0 :(得分:1)
我有这个:
SELECT
array_agg(flag_value)
FROM (
SELECT
CASE WHEN array_value = ANY (ARRAY['aa', 'cc']) THEN
array_value
ELSE
'--'
END AS flag_value
FROM
unnest(ARRAY['aa', 'bb', 'cc', 'dd']) AS array_value
) AS X;
答案 1 :(得分:1)
select array_agg(case
when a1.id is null or a2.id is null then '--'
else a1.id
end)
from unnest(array['aa', 'bb', 'cc', 'dd']) as a1(id)
left join unnest(array['aa', 'cc']) as a2(id) on a1.id = a2.id