截取子字符串(分隔符数未知)

declare @STR VARCHAR(50),
        
@STR2 VARCHAR(50),
        
@RESULT VARCHAR(50),
        
@I INT,
        
@J INT
       
SET @STR = '100*50*20*1*2*3*44*555*666*7777*88888'
SET @RESULT = ''
SET @I = 1
SET @J = 1

IF NOT (RIGHT(@STR,1= '*')
BEGIN
  
SELECT @STR = @STR + '*'
END 

WHILE NOT (CHARINDEX('*',@STR,@I= 0)
BEGIN
  
SELECT @STR2 = SUBSTRING(@STR@I, (CHARINDEX('*',@STR,@I)) - LEN(@RESULT- @J)
  
PRINT @STR2
  
SELECT @RESULT = RTRIM(CAST(@RESULT AS CHAR)) + RTRIM(CAST(@STR2 AS CHAR))
  
--PRINT @RESULT
  SELECT @I = LEN(@RESULT+ @J + 1 
  
SELECT @J = @J + 1 
END 
posted @ 2008-07-25 13:20  威尼斯的夏天  阅读(337)  评论(0编辑  收藏  举报