SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path

时间:2024-03-15 20:49:09

for xml path 就是将 sql 查询出来的内容以XML的格式显示出来

Stuff('查询字符串','开始位置(数字)','长度(数字)','需插入的字符串')

示例 :55替换abcd123字符串中的a

SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path

示例 :55替换abcd123字符串中的abcd

SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path

示例:55替换abcd123中的b 

SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path

由以上示例可知:stuff()函数 即将 指定字符串 替换 原始字符串的指定开始位置指定长度的字符

常见应用场景:如果指定列列值相同那么其他列列值合并(用逗号隔开)

示例表结构与数据如下:

SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path

统计分数一样的同学

步骤一:for xml path()+ group by  合并分数一样的同学的名字 ,此步骤我们会发现 名字前还有一个逗号

SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path

步骤二 :利用stuff()函数将查询结果中的逗号替换为' '

SQLServer如果指定列列值相同则用逗号拼接其他指定列数据 stuff函数+for xml path