html做网站的毕业设计,免费建站有哪些网站,品牌营销推广代运营,施工企业成本管控思路首先我们有一个表 查询结果如下: 现在我们想要把USER_NAME这一列的内容 放到一个字段里面去: 一行sql语句解决问题: SELECT STUFF(( SELECT , convert(VARCHAR, USER_NAME) FROM TE_USER FOR XML PATH()), 1, 1, ) AS UserName解释一下上面这条语句: 1,首先STUFF函数在上面的…首先我们有一个表 查询结果如下: 现在我们想要把USER_NAME这一列的内容 放到一个字段里面去: 一行sql语句解决问题: SELECT STUFF(( SELECT , convert(VARCHAR, USER_NAME) FROM TE_USER FOR XML PATH()), 1, 1, ) AS UserName解释一下上面这条语句: 1,首先STUFF函数在上面的语句里的作用是去除拼接的字符串最前面的逗号 STUFF函数的用法大概是STUFF(param1, startIndex, length, param2) 意思是将param1中自startIndex(SQL中都是从1开始 而非0)起 删除length个字符 然后用param2替换删掉的字符 具体用法请自行百度 2,重点说一下 FOR XML PATH: 执行SELECT * FROM TE_USER FOR XML PATH语句得到的结果: rowUSER_ID1/USER_IDUSER_NAME张三/USER_NAMEUSER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
/row
rowUSER_ID2/USER_IDUSER_NAME李四/USER_NAMEUSER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
/row
rowUSER_ID3/USER_IDUSER_NAME王五/USER_NAMEUSER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
/row看得出来 是把sql执行的结果转换成xml格式了 我们再来执行一下下面这条sql SELECT * FROM TE_USER FOR XML PATH(ABC) ABCUSER_ID1/USER_IDUSER_NAME张三/USER_NAMEUSER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
/ABC
ABCUSER_ID2/USER_IDUSER_NAME李四/USER_NAMEUSER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
/ABC
ABCUSER_ID3/USER_IDUSER_NAME王五/USER_NAMEUSER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
/ABC发现xml的row节点变成我们自定义的ABC了 那么我们如果用 FOR XML PATH() 就代表把节点变为空了: USER_ID1/USER_ID
USER_NAME张三/USER_NAME
USER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
USER_ID2/USER_ID
USER_NAME李四/USER_NAME
USER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD
USER_ID3/USER_ID
USER_NAME王五/USER_NAME
USER_PASSWORDc4ca4238a0b923820dcc509a6f75849b/USER_PASSWORD把节点变空了以后 我们执行SELECT , convert(VARCHAR, USER_NAME) FROM TE_USER FOR XML PATH() 语句 结果: ,张三,李四,王五 这就实现了USER_NAME这一列的值取出来拼接到一起了 再用我们上面说的STUFF函数把最前面的逗号去掉 就可以了。 以上。 转载于:https://www.cnblogs.com/blazeZzz/p/7359575.html