【原】[SQL function] SQL Server Split Function

來源:互聯網
上載者:User

-- dbo.fnSplitToVarchar

IF EXISTS    (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'fnSplitToVarchar')
    BEGIN
        DROP FUNCTION fnSplitToVarchar
        IF NOT EXISTS    (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'fnSplitToVarchar')
            PRINT 'DROP FUNCTION fnSplitToVarchar SUCCEEDED'
        ELSE
            PRINT 'DROP FUNCTION fnSplitToVarchar FAILED'
    END
ELSE
    PRINT 'Attempting to CREATE FUNCTION dbo.fnSplitToVarchar'
GO

CREATE FUNCTION dbo.fnSplitToVarchar
(
    @SourceSql varchar(8000),
    @StrSeprate varchar(10)
)
    returns @temp table(splitValue varchar(500))

AS
BEGIN
    DECLARE @i int
    DECLARE @StrSeprateLength int
    SET @StrSeprateLength = LEN(@StrSeprate)
    SET @SourceSql    = RTRIM(LTRIM(@SourceSql))
    SET @i        = CHARINDEX(@StrSeprate, @SourceSql)
    WHILE @i>=1
    BEGIN
        IF @i=1
            INSERT @temp VALUES('')
        ELSE
            INSERT @temp VALUES(LEFT(@SourceSql, @i-1))
        SET @SourceSql    = SUBSTRING(@SourceSql, @i+@StrSeprateLength, LEN(@SourceSql)-@i-@StrSeprateLength+1)
        SET @i        = CHARINDEX(@StrSeprate, @SourceSql)
    END
    IF @SourceSql<>@StrSeprate
        INSERT @temp VALUES(@SourceSql)
    RETURN
END

GO

IF EXISTS    (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'fnSplitToVarchar')
    PRINT 'CREATE FUNCTION dbo.fnSplitToVarchar SUCCEEDED'
ELSE
    PRINT 'CREATE FUNCTION dbo.fnSplitToVarchar FAILED'
GO

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.