设为首页 加入收藏

TOP

把某一列值转换为逗号分隔字符串
2014-11-24 02:54:59 来源: 作者: 【 】 浏览:2
Tags:转换 逗号 分隔 字符串

问题是这样的。从订阅表中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
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sql中取字符串中的数字语句 下一篇sql下拆分字符串

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解智能指针? (2025-12-24 12:48:26)
·c++是否应避免使用普 (2025-12-24 12:48:23)
·如何通俗易懂学会 C+ (2025-12-24 12:48:21)
·在 C 语言函数中,如 (2025-12-24 12:19:41)
·C盘里面的AppData文 (2025-12-24 12:19:38)