第一步创建函数:

CREATE FUNCTION [dbo].[GetInStr]     
             (@SourceStr VARCHAR(2000))--源字符串    
    
RETURNS  @table TABLE(list  VARCHAR(50) )      
  AS      
BEGIN     
   IF CHARINDEX(',',@sourcestr)>0      
    BEGIN    
      DECLARE @i INT    
      DECLARE @n INT    
      SET @i=1    
      WHILE CHARINDEX(',',@sourcestr,@i)>0    
        BEGIN    
           SET @n=CHARINDEX(',',@sourcestr,@i)    
           INSERT INTO @table VALUES(SUBSTRING(@sourcestr,@i, @n-@i) )    
           SET @i=@n+1    
        END    
        INSERT INTO @table VALUES(SUBSTRING(@sourcestr,@i,LEN(@sourcestr)-@i+1))    
    END  ELSE INSERT INTO @table VALUES(@sourcestr)    
    
  DELETE FROM @table WHERE ISNULL(list,'') = ''    
RETURN    
END

  第二步 :

SELECT * FROM [dbo].[GetInStr]   ('46,47,137,156,202,203,204,205,206,431,434,502')

  执行结果:

 

 posted on 2024-07-30 10:13  代码改变世界&1024  阅读(11)  评论(0)    收藏  举报