2010-08-18 121 views
0

我有一列數據,我已經導入了一個由聯繫地址字段組成的蓮花筆記數據庫。地址中的項目用ASCII(13),ASCII(10)分隔將SQL Server字符串解析爲子字符串

將這個地址拆分爲不同列的最簡單方法是什麼?

回答

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', ',')