數(shù)據(jù)庫(kù)split字符串分割和trim去除空格的表值函數(shù)

字號(hào):


    split字符串分割和trim去除空格的表值函數(shù),參看如下SQL語(yǔ)句:
    --split 字符串分割函數(shù)
    CREATE FUNCTION [dbo].[f_split]
    (
    @c VARCHAR(2000) ,
    @split VARCHAR(2)
    )--@c表示字符串,@split表示分隔符
    RETURNS @t TABLE ( col VARCHAR(20) ) ----返回一個(gè)表,用這個(gè)表來(lái)存儲(chǔ)分割出來(lái)的所有數(shù)據(jù)
    AS
    BEGIN
    WHILE ( CHARINDEX(@split, @c) <> 0 )----當(dāng)分隔符的索引不等于0時(shí)
    BEGIN
    INSERT @t
    ( col
    )
    VALUES
    ( SUBSTRING(@c, 1, CHARINDEX(@split, @c) - 1)
    )----分割出來(lái)的單個(gè)字符
    SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')----設(shè)置分割后的字符串
    END
    INSERT @t
    ( col )
    VALUES
    ( @c ) ----把分割出來(lái)的單個(gè)字符插入到表@t表
    RETURN
    END
    --f_trim去除空格函數(shù)
    CREATE FUNCTION [dbo].[f_trim]
    (
    @str VARCHAR(2000) ,
    @s NVARCHAR(50)
    )
    RETURNS NVARCHAR(4000)
    AS
    BEGIN
    WHILE ( SUBSTRING(@str, 1, LEN(@s)) = @s )
    BEGIN
    SET @str = RIGHT(@str, LEN(@str) - LEN(@s))
    END
    WHILE ( SUBSTRING(@str, LEN(@str) - LEN(@s) + 1, LEN(@s)) = @s )
    BEGIN
    SET @str = LEFT(@str, LEN(@str) - LEN(@s))
    END
    RETURN @str
    END