Oracle函数listagg的作用
目的:实现数据压缩
listagg可以实现将多列记录聚合为一列
listagg(measure_expr,delimiter) within group ( order by 字段) 你的别名;
用法介绍:measure_expr可以是基于任何列的表达式
delimiter分隔符,默认为NULL,通常用 ,
--mybatis编写SQL select b1.id Id , b1.name Name, listagg(b2.name , ,) within group (order by b1.id desc) Detail from bs_left_name_table b1 left join bs_right_name_table b2 on b1.id = b2.id where 1=1 <if test="Name != null and Name != "> and b1.name = #{Name,jdbcType=VARCHAR} </if> group by b1.id , b1.name order by b1.id desc --以上一共显示三列分别是 ID , name , Detail ,第三列就是合并列,根据,合并 PS: left join 会把左表没有关联的数据都显示出来,比如 bs_left_name_table 共有10条数据,bs_right_name_table 共有6条数据,其中5条是可以关联上的 用left join后最终会出现10条数据,其中5条是bs_right_name_table 表关联的数据