zoukankan      html  css  js  c++  java
  • 【原】[SQL function] SQL Server Split Function

    -- 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+@StrSeprateLengthLEN(@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
  • 相关阅读:
    cdoj1325卿学姐与基本法
    HUAS 1476 不等数列(DP)
    BZOJ 1818 内部白点(离散化+树状数组)
    BZOJ 1816 扑克牌(二分)
    BZOJ 1801 中国象棋(DP)
    BZOJ 1791 岛屿(环套树+单调队列DP)
    BZOJ 1797 最小割(最小割割边唯一性判定)
    BZOJ 1789 Y形项链(思维)
    BZOJ 1787 紧急集合(LCA)
    BZOJ 1786 配对(DP)
  • 原文地址:https://www.cnblogs.com/luckylei66/p/1425804.html
Copyright © 2011-2022 走看看