将SQL Server字符串解析为子字符串

时间:2010-08-18 09:32:37

标签: sql sql-server

我从Lotus Notes数据库中导入了一列数据,该数据库由一个联系的地址字段组成。地址中的项目由ASCII(13),ASCII(10)

分隔

将此地址拆分为单独列的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

我在我的项目中使用这样的东西。不幸的是,我没有手头的优化版本,但我很快将其编码。这可能会让你开始......

CREATE FUNCTION fx_Split
(
    @text varchar(max),
    @splitChar char(1)
)
RETURNS 
@Result TABLE 
(
    RowIndex int identity(1,1),
    SplitText varchar(max)
)
AS
BEGIN

    DECLARE @index int SET @index = 0
    DECLARE @SplitText varchar(max) SET @SplitText = ''
    DECLARE @TempText varchar(max) SET @SplitText = ''

    SET @index = CHARINDEX(@splitChar, @text) 
    SET @TempText = @text

    WHILE(@index > 0)
    BEGIN

        INSERT INTO @Result VALUES (SUBSTRING(@TempText, 1, @index-1))

        SET @TempText = SUBSTRING(@TempText, @index + 1, LEN(@TempText))

        SET @index = CHARINDEX(@splitChar, @TempText) 

    END 

    INSERT INTO @Result VALUES (@TempText)

    RETURN 
END
GO


select * from dbo.fx_Split ('asdf,qwer,asfegqgr,qweqwefe,qwf4ggrr,qfasdglsdfg', ',')