站长论坛

标题: 实例讲解实现SQL下的字符串拆分具体方法 [打印本页]

作者: tzlink    时间: 2008-12-10 10:56
标题: 实例讲解实现SQL下的字符串拆分具体方法
因为工作的原因,开发过一个拆分字符串的SQL函数,现在把它贴出来,与大家共勉学习。

该函数如下:


以下为引用的内容:
CREATE function [dbo].[StringSplit](@str nvarchar(max),@spliter nvarchar(10))

returns @tb table(ch nvarchar(256))

AS

BEGIN

DECLARE @Num int,@Pos int, @NextPos int

SET @Num = 0

SET @Pos = 1

WHILE(@Pos <= LEN(@str))

BEGIN

SELECT @NextPos = CHARINDEX(@spliter, @str, @Pos)

IF (@NextPos = 0 OR @NextPos IS NULL)

SELECT @NextPos = LEN(@str) + 1

INSERT INTO @tb VALUES(RTRIM(LTRIM(SUBSTRING(@str, @Pos, @NextPos - @Pos))))

SELECT @Pos = @NextPos+1

END

return

END

使用方法:

Syntax:

StringSplit (stringToSplit nvarchar(max) , separator nvarchar(10) )ArgumentsstringToSplit 用于分割的文本separator 分隔字符Samples在存储过程或者SQL脚本中,使用如下的方法

SELECT * FROM dbo.StringSplit('计算机,IT,C#,SQL',',')



得出的结果如下:

以下为引用的内容:
计算机

IT

C#

SQL




欢迎光临 站长论坛 (http://tzlink.com/bbs/) Powered by Discuz! X3.2