**字符串:**11-22-333-4444-55-666
**截取后的内容:**11、22、333、4444、55、666
注:可自定义一张临时表用于存放截取的内容
sql
DECLARE @str NVARCHAR(50)='11-22-333-4444-55-666' --字符串
DECLARE @custr NVARCHAR(5)='-' --截取字符
DECLARE @length INT=LEN(@str) --总长度
DECLARE @count INT=(@length - LEN(REPLACE(@str, @custr, ''))) / LEN(@custr) --截取字符总个数
DECLARE @i INT=0
DECLARE @j INT=0
DECLARE @e INT=0
DECLARE @newstr NVARCHAR(MAX)='' --新字符串
DECLARE @restr NVARCHAR(max)='' --返回字符
WHILE(@i<=@count)
BEGIN
--截取字符串
SET @newstr=RIGHT(@str,@length-@j)
SET @e=CHARINDEX(@custr,@newstr)
IF @e>0
SET @restr=SUBSTRING(@newstr,0,@e)
ELSE
SET @restr=SUBSTRING(@newstr,0,LEN(@newstr))
SELECT @restr
SET @j=@j+LEN(@restr)+1
SET @i=@i+1
END