ARRAY_AGG默认值我有一个观点:设置空数组作为PostgreSQL中
CREATE OR REPLACE VIEW microservice_view AS
SELECT
m.id :: BIGINT,
m.name,
m.sending_message_rate :: BIGINT,
m.max_message_size :: BIGINT,
m.prefetch_count :: BIGINT,
(SELECT COALESCE(json_agg(DISTINCT node_id), '[]')
FROM public.microservice_node
WHERE microservice_id = m.id) AS nodes,
(SELECT array_agg(DISTINCT json_build_object('id', transport_id :: INT,
'is_available', (credentials ->> 'is_available') :: BOOLEAN,
'username', credentials ->> 'username',
'password', credentials ->> 'password',
'default', (default_transport) :: BOOLEAN) :: JSONB
)
FROM transport_microservice
WHERE microservice_id = m.id) AS transports
FROM public.microservice m
GROUP BY m.id
ORDER BY m.id ASC;
有时运输为空。我如何设置一个空数组作为array_agg的默认值?这个字段应该是一个空数组或数组。在某些情况下,我使用array_length函数来过滤数据。
的东西合并它,就像你用'json_agg做()' –
@NickBarnes json_agg正在返回JSON,我不能使用array_length – Illorian
@NickBarnes还当我尝试用聚结,我得到{}而非[] – Illorian