假设我有一张用户表user和一张住址表address,它们是1:n的关系,即一个用户可以有多个地址,那么如下这句sql将返回所有用户的所有住址,也即一个用户的2个地址会对应2行记录:
select u.username,a.addressDetail
from user u
left outter join address a on a.userid=u.userid
但是目前我想要得到另一个结果,即一个用户只返回一行记录,其住址那一列显示用逗号分隔的不同地址。
请教高手,在oracle里面有没有什么特别的函数,能够让我用一句sql完成这件事?谢谢了。
select u.username,a.addressDetail
from user u
left outter join address a on a.userid=u.userid
但是目前我想要得到另一个结果,即一个用户只返回一行记录,其住址那一列显示用逗号分隔的不同地址。
请教高手,在oracle里面有没有什么特别的函数,能够让我用一句sql完成这件事?谢谢了。
select u.username,wmsys.wm_concat(a.addressDetail)
from user u
left outter join address a on a.userid=u.userid
group by u.username
http://topic.csdn.net/u/20080824/19/3f94dbc6-856a-4193-b831-accde553763f.html
参照此帖
http://topic.csdn.net/u/20080505/11/a0958b42-d938-465f-972a-0f61a2969c97.html?seed=491226048
3楼的回复.
http://topic.csdn.net/u/20080505/11/a0958b42-d938-465f-972a-0f61a2969c97.html?seed=491226048