【发布时间】:2010-09-23 19:26:50
【问题描述】:
可能重复:
Split string in SQL
我在 SQL 中见过a couple of questions related to string concatenation。 我想知道您将如何处理相反的问题:将逗号分隔的字符串拆分为数据行:
假设我有桌子:
userTypedTags(userID,commaSeparatedTags) 'one entry per user
tags(tagID,name)
想往表中插入数据
userTag(userID,tagID) 'multiple entries per user
灵感来自Which tags are not in the database?问题
编辑
感谢您的回答,实际上应该接受的不止一个,但我只能选择一个,而带有递归的solution presented by Cade Roux 对我来说似乎很干净。它适用于 SQL Server 2005 及更高版本。
对于早期版本的 SQL Server,可以使用解决方案 provided by miies。 对于使用文本数据类型 wcm answer 将很有帮助。再次感谢。
【问题讨论】:
-
只需使用拆分例程即可。很多人已经在 SO 和其他地方发布了它的代码。
-
听起来你需要将该列分离到它自己的表中。如果标签只存储在一个分隔列表中,你将如何编写高效的 sql 来查找与特定标签关联的记录?
-
Kevin,你能提供一些链接吗?
-
好吧,这样就更有意义了。所以我应该追捕你的前任,因为他首先制造了这个烂摊子;)
标签: sql-server sql-server-2005 tsql