2. 另一种是使用SQL Server的 for xml path 加上分割符的方法取得,这种是比较常见的,兼容性也比较强 selectStudent ,Subjects=stuff((select','+convert(varchar,[subject])fromScore bwhere1=1andb.Student=a.Studentforxml path('')),1,1,'') ,totalScore=SUM(score)fromScore agroupbyStudent 如上图...
from Table_A as A group by 类别 这里使用了SQL Server 2005版本以后加入的stuff以及for xml path,先说下在上面这句sql中的作用,然后再详细的说明一下这两个的用法。 for xml path('') 这句是把得到的内容以XML的形式显示。 stuff((select ',' + ep_name from ep_detail where ep_classes = a.ep_...
3、以及转为如下图: (1)stuff函数 STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。 select stuff(' world',1,0,'hello') --hello world 1. (2)FOR XML PATH函数 select *from t_score for xml path 1....
selects.name,(select','+b.subjectfromsubjectsasbwhereb.name=s.nameforxmlpath(''))fromsubjectsass--group by name select ','+b.subject 或者select b.subject+',' 可以看出subjects中有多余的分隔符,可在前可在后。所以,去掉分隔符可以使用left,right,stuff函数。 --使用stuff去除首位分隔符selects.nam...
项明细=(SELECT ','+项名 FROM 典 WHERE 名称=A.名称 FOR XML PATH('')) FROM 典A GROUP BY 名称 注意:必须要加上条件where 名称=A.名称,不然出现笛卡尔集,会连接所有的项 去掉前面逗号,此时要用到STUFF()函数 SELECT 名称, 项明细=STUFF((SELECT ','+项名 FROM 典 WHERE 名称=A.名称 FOR XML ...
select [value] +',' from tb as b where b.id = a.id for xml path('')) from tb as a group by id --第二种显示结果 --1 aa,bb, --2 aaa,bbb,ccc, --第三种显示 select id, [val]=stuff(( select ','+[value] from tb as b where b.id = a.id for xml path('')),1,...
from Table_A as A group by 类别 这⾥使⽤了SQL Server 2005版本以后加⼊的stuff以及for xml path,先说下在上⾯这句sql中的作⽤,然后再详细的说明⼀下这两个的⽤法。for xml path('')这句是把得到的内容以XML的形式显⽰。stuff((select ',' + ep_name from ep_detail where ep_...
GROUP BY t1.group_column 在上面的示例中,your_table是包含group_column和value_column两列的表。group_column是用于分组的列,value_column是要串联的值列。 这个查询使用了子查询和FOR XML PATH子句来将每个分组的值列连接成一个字符串。STUFF函数用于去除第一个逗号,最终得到串联的值列。
使用FOR XML PATH 进行字符串拼接 在SQL Server 中,如果我们希望按照客户拼接他们购买的产品,可以使用FOR XML PATH。以下是实现此功能的 SQL 查询示例: SELECTCustomerName,STUFF((SELECT', '+ProductFROMOrders o2WHEREo2.CustomerName=o1.CustomerNameFORXML PATH('')),1,2,'')ASProductsFROMOrders o1GROUPBYCu...
这里利用的是 for xml path 就是将查询结果集以XML形式展现 这里的char(10)代表的是以空格隔开每一个字段 也可以将char(10)替换为其他字符,比如‘#’ 则以#分割 另外我们看下不加char(10)则会会显示的默认xml形式: 最后,如果你想把字段最前面的符号去除,可以用select stuff() select item, stuff( (select...