题目
项目代码 省市
A 天津
A 山西
A 广东
B 北京
B 上海
C 上海
C 天津
D 大连
D 哈尔滨
.....结果
项目代码 省市
A 天津;山西;广东
B 北京;上海
C 上海;天津
D 大连;哈尔滨
....
就是按项目代码分组,并把该项目的省市存到一起。sql不能把项目代码写死,因为可能有成百上千的项目呢!!!这个sql怎么写?谢谢大家了~~
项目代码 省市
A 天津
A 山西
A 广东
B 北京
B 上海
C 上海
C 天津
D 大连
D 哈尔滨
.....结果
项目代码 省市
A 天津;山西;广东
B 北京;上海
C 上海;天津
D 大连;哈尔滨
....
就是按项目代码分组,并把该项目的省市存到一起。sql不能把项目代码写死,因为可能有成百上千的项目呢!!!这个sql怎么写?谢谢大家了~~
可以用
select 项目代码,wm_concat(省市)省市 from test_m
group by 项目代码;项目代码 省市
A 天津,山西,广东
B 北京,上海
C 上海,天津
D 大连,哈尔滨否则的话,用
select 项目代码,substr(max(sys_connect_by_path(省市,';')),2)省市
from (
select t.*,row_number()over(partition by 项目代码 order by rownum)rn from test_m t)
start with rn=1
connect by prior rn+1=rn and prior 项目代码=项目代码
group by 项目代码
order by 项目代码项目代码 省市
A 天津;山西;广东
B 北京;上海
C 上海;天津
D 大连;哈尔滨