WITH RECURSIVE S ( uid, cname ) AS (
SELECT
du.uid,
cd.cname
FROM
tb_dept_user du
LEFT JOIN tb_company_dept cd ON du.cid = cd.cid
AND du.cdid = cd.cdid
WHERE
du.cid = #{cid}
AND du.cname LIKE '%${cname}%'
) SELECT
uid,
string_agg ( DISTINCT cname, ',' ) as dept
FROM
S
GROUP BY
uid LIMIT #{size}