What is the equivalent for coalesce
in the new jOOQ 3.14 SQL/JSON supporting version (in PostgreSQL)?
JavaScript
x
select coalesce(json_agg(t.*), '[]'::json)
from (select 'test' as mycol where 1 = 2) t;
The following unfortunately fails with the error “COALESCE types json and uuid[] cannot be matched”.
JavaScript
coalesce(jsonArrayAgg(mycol), emptyArray<type>())
Advertisement
Answer
JSON.json()
or JSONB.jsonb()
, e.g.:
JavaScript
coalesce(jsonArrayAgg(mycol), inline(json("[]")))
coalesce(jsonbArrayAgg(mycol), inline(jsonb("[]")))
But you can also use the jsonArray()
or jsonbArray()
constructors:
JavaScript
coalesce(jsonArrayAgg(mycol), jsonArray())
coalesce(jsonbArrayAgg(mycol), jsonbArray())