您的位置:首页 > 数据库

sql 拆分字符串 Split

2016-08-24 14:33 351 查看
sql:

CREATE FUNCTION [dbo].[Split] (

    @sText      NVARCHAR(Max),

    @sDelim     CHAR(1)

)

RETURNS @retArray TABLE (

    value   VARCHAR(100)

)

AS

BEGIN
DECLARE 
@posStart
BIGINT,
@posNext
BIGINT,
@valLen
BIGINT,
@sValue
NVARCHAR(100);

IF @sDelim IS NULL 
BEGIN
IF LEN(@sText)>100 SET @sText = SUBSTRING(@sText, 1, 100)

INSERT @retArray (value)
VALUES (@sText);
END
ELSE
BEGIN
SET @posStart = 1;

WHILE @posStart <= LEN(@sText)
BEGIN
SET @posNext = CHARINDEX(@sDelim, @sText, @posStart);

IF @posNext <= 0 
SET @valLen = LEN(@sText) - @posStart + 1;
ELSE
SET @valLen = @posNext - @posStart;

SET @sValue = SUBSTRING(@sText, @posStart, @valLen);
SET @posStart = @posStart + @valLen + 1;

IF LEN(@sValue) > 0
BEGIN
IF LEN(@sValue)>100 SET @sValue = SUBSTRING(@sValue, 1, 100)

INSERT @retArray (value)
VALUES (@sValue);
END
END
END
RETURN

END

测试:

DECLARE @DateString varchar(1000)

SET @DateString = '星期四,星期五'

select * from dbo.Split(@DateString,',')

结果:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: