select a.seqno,a.compid,a.name,
max(case b.fieldtype when 1 then field else '''+@blank+''' end) 座机,
max(case b.fieldtype when 2 then field else '''+@blank+''' end) 手机
from table1 a
group by a.name,a.seqno,a.compid
------最佳解决方案--------------------
哦,看错了
with tb(姓名,field,fieldtype)
as(
select '李','01058210000',1 union all
select '王','13512555685',2 union all
select '李','01052810001',1)
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.姓名
------其他解决方案--------------------
CREATE table #TEMP
(
NAME VARCHAR(10),
TEL VARCHAR(20),
type char(1)
)
insert into #TEMP
SELECT '李', '01058210000', '1' UNION
SELECT '王', '13512555685', '2' UNION
SELECT '李', '01052810001', '1'
--select*fromtb pivot(max(分数)for课程in(语文,数学,物理))a
select NAME , a.[1] as 座机,a.[2] as 手机 from
(
select * from #TEMP
pivot (Max(tel) for [type] in([1],[2])) pvt)a ------其他解决方案-------------------- --use StudentNew
----使用for xml path
----下边的sql语句可以将属于同组的多行的数据变成一个数据
----结果演示
----CityName 用户名
----北京 b,d
----上海 a,c,e
----create @T1 table