CREATE FUNCTION SPLIT (
@str_in  VARCHAR(8000),
@separator VARCHAR(4) )
RETURNS @strtable TABLE (strval  VARCHAR(8000))
AS
BEGIN

DECLARE
 
@Occurrences INT,
 
@Counter INT,
 
@tmpStr VARCHAR(8000)

 
SET @Counter = 0
        
IF SUBSTRING(@str_in,LEN(@str_in),1<> @separator 
              
SET @str_in = @str_in + @separator

 
SET @Occurrences = (DATALENGTH(REPLACE(@str_in,@separator,@separator+'#')) -  DATALENGTH(@str_in))/ DATALENGTH(@separator)
 
SET @tmpStr = @str_in

 
WHILE @Counter <= @Occurrences 
 
BEGIN
  
SET @Counter = @Counter + 1
  
INSERT INTO @strtable
  
valueS ( SUBSTRING(@tmpStr,1,CHARINDEX(@separator,@tmpStr)-1))

  
SET @tmpStr = SUBSTRING(@tmpStr,CHARINDEX(@separator,@tmpStr)+1,8000)
  
  
IF DATALENGTH(@tmpStr= 0
   
BREAK
  
 
END
 
RETURN 
END
输入字符串返回表。
调用
select dbo.split('需要分割的字符串','分割符号')

相关文章:

  • 2021-08-16
  • 2022-12-23
  • 2021-06-28
  • 2022-12-23
  • 2022-12-23
  • 2022-02-19
猜你喜欢
  • 2021-12-23
  • 2022-12-23
  • 2021-09-12
  • 2021-07-15
  • 2022-12-23
  • 2021-10-20
  • 2022-12-23
相关资源
相似解决方案