实现split类似功能的sql语句

declare @str as nvarchar(50)
set @str = N'.0.1.1001.2002.3.204.5.106.'
declare @str_tmp as nvarchar(30)
declare @index as int
declare @str_len as int

select @str_len=LEN(@str)
select @index=CHARINDEX('.',@str, 1)
if @index = 1
set @str = RIGHT(@str, len(@str) - 1)

if RIGHT(@str, 1) = '.'
set @str= LEFT(@str, len(@str) - 1)
while LEN(@str) > 0 and (CHARINDEX('.',@str,1) > 0)
begin
select @index=CHARINDEX('.',@str, 1)
select @str_tmp = LEFT(@str, @index - 1)
print @str_tmp
set @str = RIGHT(@str,len(@str)-@index)
end
print @str

输出结果为:

0
1
1001
2002
3
204
5
106

原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/2945971.html