SELECT
su.*,
COALESCE(t.rName, '') AS rName,
COALESCE(t.rCodes, '') AS rCodes,
COALESCE(t.rQualificationsIds, '') AS rQualificationsIds,
COALESCE(t.dCodes, '') AS dCodes
FROM
sys_user su
LEFT JOIN (
SELECT
sur.user_id,
LISTAGG(DISTINCT sr.NAME, ',') WITHIN GROUP (ORDER BY sr.NAME) AS rName,
LISTAGG(DISTINCT sr.code, ',') WITHIN GROUP (ORDER BY sr.code) AS rCodes,
LISTAGG(DISTINCT dqu.qualifications_id, ',') WITHIN GROUP (ORDER BY dqu.qualifications_id) AS rQualificationsIds,
LISTAGG(DISTINCT nud.dept_code, ',') WITHIN GROUP (ORDER BY nud.dept_code) AS dCodes
FROM sys_user_role sur
LEFT JOIN sys_role sr ON sur.role_code = sr.code AND sr.hos_id = #{params.hosId}
LEFT JOIN dict_qualifications_user dqu ON dqu.user_id = sur.user_id
LEFT JOIN nurse_user_dept nud ON nud.user_id = sur.user_id AND nud.hos_id = #params.hosId}
GROUP BY sur.user_id
) t ON su.id = t.user_id
WHERE
su.hos_id = #{params.hosId}
AND su.module_code = #{params.moduleCode}
<if test="params.removeAdmin != null and params.removeAdmin">
AND su.username != 'admin'
</if>
<if test="params.condition != null and params.condition != ''">
AND (NVL(su.name, '') || NVL(su.username, '') || NVL(su.py_code, '') || NVL(t.rName, ''))
LIKE '%' || #{params.condition} || '%'
</if>
params类型里传入了四个参数,但是在sql里左连接里复用了hosId报这个错误
看下xml 或者mapper文件里是否由格式错误的注释