您的位置:首页 > 数据库

Sql字符串分隔函数

2010-10-31 21:53 309 查看
IF OBJECT_ID('fn_split', 'FN') IS NOT NULL
DROP FUNCTION fn_split
GO

CREATE FUNCTION [dbo].[fn_split]
(
@Source VARCHAR(MAX),
@Separator CHAR(1)
)
RETURNS @TB TABLE(VL VARCHAR(100))
AS
BEGIN
DECLARE @TMP VARCHAR(MAX)
DECLARE @VL VARCHAR(100)
SET @TMP = @Source
WHILE @TMP <> ''
BEGIN
IF CHARINDEX(@Separator, @TMP) = 0
BEGIN
SET @VL = LTRIM(RTRIM(@TMP))
IF @VL <> ''
BEGIN
INSERT INTO @TB
SELECT @VL

SET @TMP = ''
END
END
ELSE
BEGIN
SET @VL = SUBSTRING(@TMP, 0, CHARINDEX(@Separator, @TMP))
SET @VL = LTRIM(RTRIM(@VL))
IF @VL <> ''
BEGIN
INSERT INTO @TB
SELECT @VL
END

SET @TMP = SUBSTRING(@TMP, CHARINDEX(@Separator, @TMP) + 1, LEN(@TMP))
SET @TMP = LTRIM(RTRIM(@TMP))
END
END
RETURN;
END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: