日期:2014-05-18  浏览次数:20515 次

大家帮忙解释一下这语句

本人是菜鸟,这里面的语句有点看不明白,为什么要这样写,请朋友们翻译一下!
select a.Aid,Aname,Abeizhu,beizhu=stuff((select ';'+Bbeizhu from 表B where Aid=a.Aid for xml path('')),1,1,'') from 表A a
go
原贴是这个,在论坛里看到的http://topic.csdn.net/u/20111215/16/16897d6b-923e-4de8-a3d5-9806cc849002.html?68172

------解决方案--------------------
for xml path('')会把字段Bbeizhu的不同值用逗号分隔并串成一行。如:1,2,3,4,
在这个结果的最前面加一个逗号就变成了:,1,2,3,4,。
这样做目的是为了方便STUFF操作。
总之这种处理的目的:就是把一个字段的值串成一个类似于数组的结构。
更详细,可以到MSDN上去翻一翻for xml path.
------解决方案--------------------
探讨
本人是菜鸟,这里面的语句有点看不明白,为什么要这样写,请朋友们翻译一下!
select a.Aid,Aname,Abeizhu,beizhu=stuff((select ';'+Bbeizhu from 表B where Aid=a.Aid for xml path('')),1,1,'') from 表A a
go
原贴是这个,在论坛里看到的http://topic.csdn.net/u/……

------解决方案--------------------
SQL Server FOR XML PATH 语句的应用
------解决方案--------------------
看不懂
------解决方案--------------------
http://www.cnblogs.com/yanghaibo/archive/2010/06/04/1751405.html

单纯的FOR XML PATH是为了生成XML数据
------解决方案--------------------
灵活运用 SQL SERVER FOR XML PATH 
http://blog.csdn.net/pengxuan/article/details/6609043
------解决方案--------------------
灵活运用 SQL SERVER FOR XML PATH
http://blog.csdn.net/pengxuan/article/details/6609043