select a.seqno,a.compid,a.name,
max(case b.fieldtype when 1 then field else '' end) 座机,
max(case b.fieldtype when 2 then field else '' end) 手机
from table1 a
group by a.name,a.seqno,a.compid
------最佳解决方案-------------------- select 姓名,stuff((select ','+field from tb tb2 where fieldtype=1 and tb2.姓名=tb1.姓名 for xml path('')),1,1,'') 座机,stuff((select ','+field from tb tb2 where fieldtype=2 and tb2.姓名=tb1.姓名 for xml path('')),1,1,'') 手机 from tb tb1 group by tb1.姓名 ------其他解决方案-------------------- 该回复于2012-11-23 09:53:27被版主删除 ------其他解决方案--------------------
写错了。。我那一大串太乱了就给简化了一下 本来是右链接一张表的 ------其他解决方案-------------------- 给出具体测试数据 把格式整理好点 ------其他解决方案-------------------- Create table Test
(
Name varchar(20),
No varchar(20),
Type int
)
Go
Insert Into Test
Select '张三','123456789',1