• Sql Server分割字符串函数


    -- Description: 分割字符串函数
    -- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',')
    -- =============================================
    
    CREATE FUNCTION [dbo].[Split] ( @Text VARCHAR(8000) , @Sign NVARCHAR(4000) )
        RETURNS @tempTable TABLE ( ID INT IDENTITY(1, 1) PRIMARY KEY , [TEMPVAL] VARCHAR(4000) ) 
        AS BEGIN DECLARE @StartIndex INT --开始查找的位置
     DECLARE @FindIndex INT --找到的位置
     DECLARE @Content VARCHAR(4000) --找到的值
    
    SET @StartIndex = 1 --T-SQL中字符串的查找位置是从1开始的
    
    SET @FindIndex = 0 --开始循环查找字符串逗号
     WHILE (@StartIndex <= LEN(@Text)) BEGIN --返回值是找到字符串的位置
    
    SELECT @FindIndex = CHARINDEX(@Sign, @Text, @StartIndex) --判断有没找到 没找到返回0
     IF (@FindIndex = 0
         OR @FindIndex IS NULL ) BEGIN --如果没有找到者表示找完了
    
    SET @FindIndex = LEN(@Text) + 1 END --初始化下次查找的位置
    SET @Content = LTRIM(RTRIM(SUBSTRING(@Text, @StartIndex, @FindIndex - @StartIndex)))
    
    SET @StartIndex = @FindIndex + 1 --把找的的值插入到要返回的Table类型中
    
    INSERT INTO @tempTable ([TEMPVAL])
    VALUES (@Content) END RETURN END
  • 相关阅读:
    Mix and Build(简单DP)
    Is It A Tree?(并查集)
    Paths on a Grid(简单组合数学)
    Code(组合数学)
    Round Numbers(组合数学)
    Inviting Friends(二分+背包)
    Communication System(dp)
    Human Gene Functions
    Pearls
    敌兵布阵(线段树HDU 1166)
  • 原文地址:https://www.cnblogs.com/NichkChang/p/4706221.html
Copyright © 2020-2023  润新知