题材是那样的。从订阅表中SELECT某一个用户全体订阅的目录,然后能够绑定至前台显示给用户,让用户领会本人有怎样订阅和怎么目录没有订阅。

如下表[dbo].[SubScription]:

XML 1

 

供给SELECT用户ID为15的持有订阅目录。如最终结果:

XML 2

 

Insus.NET是在SQL Server
2012
结合XML的FOR
XML PATH()来实现。参考:

XML 3XML 4View Code

SELECT [UsersId], [SubscriptionCataLog] = STUFF((SELECT ‘,’ + CAST([SubscriptionCatalog_nbr] AS NVARCHAR(MAX))  
FROM [dbo].[SubScription] WHERE ([UsersId] = s.[UsersId])
FOR XML PATH (”)),1,1,”)
FROM [dbo].[SubScription] s
WHERE [usersId] = 15
GROUP BY [UsersId] 

 

第三是在多少表FROM [dbo].[SubScription],条件为WHERE [usersId] =
15过滤出用户拥有订阅目录,并分组GROUP BY [UsersId]

然后把[SubscriptionCatalog_nbr]由整型转为字符串:CAST([SubscriptionCatalog_nbr] AS
NVARCHAR(MAX)

再用’,’与之串连起来,最终用FO奥德赛 XML PATH (”)方法,把每一行数据串连接起。

详尽一些,能够见到:

SELECT ‘,’ + CAST([SubscriptionCatalog_nbr] AS NVARCHAR(MAX))  
FROM [dbo].[SubScription]
FOR XML PATH (”)

 

执行获得的结果:

XML 5

 

STUFF这么些函数,是为着截除第3个逗号。

 

 

相关文章

网站地图xml地图