sqlserver存储过程 分割字符串 然后循环

创建函数:

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[f_split]') AND xtype IN (N'FN',N'IF',N'TF'))   
DROP FUNCTION [dbo].[f_split] 
go
CREATE FUNCTION f_split(
    @str NVARCHAR(MAX),
    @separtor VARCHAR(10)
)    
RETURNS @temp TABLE( VALUE NVARCHAR(4000))    
AS     
BEGIN   
   DECLARE @i INT   
   SET  @str=RTRIM(LTRIM(@str))    
   SET  @i=charindex(@separtor,@str)    
   WHILE   @i>=1    
    BEGIN   
     INSERT @temp VALUES(LEFT(@str,@i-1))    
     SET @str=SUBSTRING(@str,@i+1,len(@str)-@i)    
     SET @i=charindex(@separtor,@str)    
    END   
    IF @str<>''     
    INSERT @temp VALUES(@str)    
    RETURN     
END
GO

调用函数:

SELECT @strcount= COUNT(*) FROM f_split(@ProcedureIds,',')
            SET @i=0;
           WHILE @i<@strcount
            BEGIN
            WITH tabs AS (SELECT ROW_NUMBER() over(ORDER BY VALUE) AS ROWS,*  FROM f_split(@ProcedureIds,',') )SELECT @ProcedureId=VALUE FROM tabs WHERE ROWS=(@i+1)      
         END
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容