用分隔符分隔字符串#@#

时间:2009-05-18 19:45:24

标签: sql string

下面的字符串我必须使用sql调用三次。 字符串:JAN#@#PIET#@#HENK

第一个电话shoudl返回: JAN 第二个电话: PIET 第三: HENK

所以我们可以使用#@#作为分隔符,但可能是字符串是: JAN#@#PIET只。仍然所有三个电话都将在那里完成 调用1返回: JAN 调用4返回: PIET cal三回: <>

仅限字符串JAN也可能发生。

我希望这个解释足以帮助我解决这个问题。

提前致谢。

此致 Ryni

3 个答案:

答案 0 :(得分:3)

如果您使用的是sql 2005,请根据您的需要调整此帖子:

Split Funcin - 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拆分字符串方法都有详细的利弊:

http://www.sommarskog.se/arrays-in-sql.html