作者cutecpu (可爱中央处理器)
看板Database
标题Re: [SQL ] 子查询并成一栏
时间Mon Aug 22 15:13:56 2011
select t1.ID,t1.NAME,
stuff(
(
select ',' + city
from B t2
where t2.ID = t1.ID
for xml path('')
),1,1,''
) as city
from A t1
※ 引述《fr730149 ()》之铭言:
: ※ 引述《cutecpu (可爱中央处理器)》之铭言:
: : select A.ID,A.NAME,(
: : select city + ','
: : from A t2
: : where t2.ID = t1.ID
: : for xml path('')
: : ) as city
: : from A t1
: 非常谢谢您的回答,照你所撰写的语法,似乎有误…
: 所以我将您的语法,改写成以下,就可顺利执行:
: -----------------------------------------------
: select t1.ID,t1.NAME,(
: select city + ','
: from B t2
: where t2.ID = t1.ID
: for xml path('')
: ) as city
: from A t1
: -----------------------------------------------
: 但现在又出现一个问题,找出来的资料都会在,字尾加上','
: 如下栏city所示:
: ID name city
: 1 Mark Taipei,Tainan,
: 2 Mary Taipei,
: 3 Leo ChangHua,Kaohsiung,
: 目前我的作法是在,程式端将最後一个','删掉。
: 那麽是否有方法:单用SQL语法将','删除
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.59.164.109
1F:推 fr730149:原来还有stuff可用 再次感谢 08/22 15:20
2F:推 koehie:那如果在 Oracle 呢 ? 同样的需求要如何解决呢 ? 08/28 21:20