下面的字符串我必须使用sql调用三次。 字符串:JAN#@#PIET#@#HENK
第一个电话shoudl返回: JAN 第二个电话: PIET 第三: HENK
所以我们可以使用#@#作为分隔符,但可能是字符串是: JAN#@#PIET只。仍然所有三个电话都将在那里完成 调用1返回: JAN 调用4返回: PIET cal三回: <>
仅限字符串JAN也可能发生。
我希望这个解释足以帮助我解决这个问题。
提前致谢。
此致 Ryni
答案 0 :(得分:3)
如果您使用的是sql 2005,请根据您的需要调整此帖子:
答案 1 :(得分:2)
听起来像是你要求一个像枚举器一样保持状态的分割功能。你真的不想那样。这可能是非常糟糕的。
我建议使用split string function(在sql server中,它们被称为表值函数)。如果你这样做,最糟糕的情况是你必须循环表结果。无论如何,您可以在此处找到该功能:http://dpatrickcaldwell.blogspot.com/2008/08/table-valued-function-to-split-strings.html
您的用法如下:
SELECT *
FROM dbo.SplitString('JAN#@#PIET#@#HENK', '#@#')
-- PartId Part
-- ----------- --------
-- 1 JAN
-- 2 PIET
-- 3 HENK
SELECT *
FROM dbo.SplitString('JAN#@#PIET#@#HENK', '#@#')
WHERE PartId = 2
-- PartId Part
-- ----------- --------
-- 2 PIET
答案 2 :(得分:1)
每个可能的SQL Server拆分字符串方法都有详细的利弊: