postgresql查询用户拥有的所有角色,并合并为一列
//合并字符串数据
//company_user 用户表
//sys_user_role 用户角色表
//sys_role 角色表
//array_to_string/ARRAY_AGG 内置函数
SELECT
user_name,
array_to_string( ARRAY_AGG ( role_code ), ';' ) AS user_role
FROM
(
SELECT
cu.user_name,
r.role_code
FROM
company_user cu
LEFT JOIN sys_user_role ur ON cu.user_id = ur.user_id
LEFT JOIN sys_role r ON ur.role_id = r.role_id
) company_user_role
GROUP BY
user_name
//拆分字符串数据
select regexp_split_to_table('abc,def,xyz,bye',',') as id