0
我有一列数据,我已经导入了一个由联系地址字段组成的莲花笔记数据库。地址中的项目用ASCII(13),ASCII(10)分隔将SQL Server字符串解析为子字符串
将这个地址拆分为不同列的最简单方法是什么?
我有一列数据,我已经导入了一个由联系地址字段组成的莲花笔记数据库。地址中的项目用ASCII(13),ASCII(10)分隔将SQL Server字符串解析为子字符串
将这个地址拆分为不同列的最简单方法是什么?
我在我的项目中使用了类似的东西。不幸的是,我手边没有我的优化版本,但我很快编写了它。这可能会让你开始...
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', ',')