<b>把某一列值转换为逗号脱离字符串</b>[MSSQL防范]
本文“<b>把某一列值转换为逗号脱离字符串</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
问题是这样的.从定阅表中SELECT某一个用户全部定阅的目录,然后可以绑定至前台显示给用户,让用户知道自己有哪些定阅和哪些目录没有定阅.
以下表[dbo].[SubScription]:
需求SELECT用户ID为15的全部定阅目录.如终究后果:
Insus.NET是在SQL Server 2012结合XML的FOR XML PATH()来实现.参考:
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 www.2cto.com
WHERE [usersId] = 15
GROUP BY [UsersId]
首先是在数据表FROM [dbo].[SubScription],条件为WHERE [usersId] = 15过滤出用户全部定阅目录,并分组GROUP BY [UsersId]
然后把[SubscriptionCatalog_nbr]由整型转为字符串:CAST([SubscriptionCatalog_nbr] AS NVARCHAR(MAX)
再用','与之串通起来,最后用FOR XML PATH ('')办法,把每一行数据串通接起.
具体一些,可以看到:
SELECT ',' + CAST([SubscriptionCatalog_nbr] AS NVARCHAR(MAX))
FROM [dbo].[SubScription]
FOR XML PATH ('')
履行得到的后果:
STUFF这个函数,是为了截除第一个逗号.
作者 Insus.NET
以上是“<b>把某一列值转换为逗号脱离字符串</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |