这里有一些过时的解决方案:/*
Splits string into parts delimitered with specified character.
*/CREATE FUNCTION [dbo].[SDF_SplitString](
@sString nvarchar(2048),
@cDelimiter nchar(1))RETURNS @tParts TABLE ( part nvarchar(2048) )ASBEGIN
if @sString is null return
declare @iStart int,
@iPos int if substring( @sString, 1, 1 ) = @cDelimiter
begin
set @iStart = 2
insert into @tParts values( null )
end
else
set @iStart = 1
while 1=1
begin
set @iPos = charindex( @cDelimiter, @sString, @iStart )
if @iPos = 0
set @iPos = len( @sString )+1
if @iPos - @iStart > 0
insert into @tParts values ( substring( @sString, @iStart, @iPos-@iStart ))
else
insert into @tParts values( null )
set @iStart = @iPos+1
if @iStart > len( @sString )
break
end
RETURNEND
在SQLServer 2008中,您可以使用.NET代码实现相同的功能。也许它会工作得更快,但这种方法肯定更容易管理。