| 
                         一.定义表变量  <div class="codetitle"><a style="CURSOR: pointer" data="75855" class="copybut" id="copybut75855" onclick="doCopy('code75855')"> 代码如下:<div class="codebody" id="code75855">  DECLARE @T1 table  (  UserID int, UserName nvarchar(50), CityName nvarchar(50)  );    <div class="codetitle"><a style="CURSOR: pointer" data="67569" class="copybut" id="copybut67569" onclick="doCopy('code67569')"> 代码如下:<div class="codebody" id="code67569">  insert into @T1 (UserID,UserName,CityName) values (1,'a','上海')  insert into @T1 (UserID,CityName) values (2,'b','北京')  insert into @T1 (UserID,CityName) values (3,'c',CityName) values (4,'d',CityName) values (5,'e','上海')    <div class="codetitle"><a style="CURSOR: pointer" data="45543" class="copybut" id="copybut45543" onclick="doCopy('code45543')"> 代码如下:<div class="codebody" id="code45543">  select * from @T1  -----最优的方式  SELECT CityName,STUFF((SELECT ',' + UserName FROM @T1 subTitle WHERE CityName=A.CityName FOR XML PATH('')),1,'') AS A  FROM @T1 A  GROUP BY CityName  ----第二种方式  SELECT B.CityName,LEFT(UserList,LEN(UserList)-1)  FROM (  SELECT CityName,(SELECT UserName+',' FROM @T1 WHERE CityName=A.CityName FOR XML PATH('')) AS UserList  FROM @T1 A  GROUP BY CityName  ) B  stuff(select ',' + fieldname from tablename for xml path('')),'')    这一整句的作用是将多行fieldname字段的内容串联起来,用逗号分隔。  for xml path是SQL Server 2005以后版本支持的一种生成XML的方式。  stuff函数的作用是去掉字符串最前面的逗号分隔符。  效果图:                         (编辑:岳阳站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |