需要使用到函数wm_concat(),和分组group by
在idea中输入预计,wm_concat会标红,但是不影响,可以直接运行
idea使用参考:使用idea自带database连接使用oracle
select wm_concat(t.name) from user t group by t.sex
ps:当组内某条数据的name为null的时候,只拼接不为null的数据
如果多个字段值相同,可以同时作为分组条件
select wm_concat(t.name) from user t group by t.sex,t.age
如果想要查询出不在group by中的字段,必须使用聚合函数来包裹,不然会报错(可以使用min或者max来解决)前提是分组以后查询出的数据这个字段的值必须都相同
--会报错
select wm_concat(t.name),t.height from user t group by t.sex,t.age
--正确的
select wm_concat(t.name),min(t.height) from user t group by t.sex,t.age
当使用union all连接两个sql的时候,当返回的字段中有为null的,会报错返回值类型不相同,可以使用to_char来转换(当你不知道哪个可能为null的时候才使用,当你知道哪个字段,只转换那个字段就行了)
select to_char(wm_concat(t.name)),to_char(min(t.height)) from user t group by t.sex,t.age