ip地址EX: '255.255.120.110-255.255.120.115,255.10.120.110-255.10.120.115,255.10.10.115'
insert into #IPAddresses(ColumnName)
select * from [dbo].[splitFunction] (@IPAddresses,',')
declare @IPStart int
declare Cur_IPAddress cursor for
select substring(substring(Item, charindex('.', Item, charindex('.', Item, charindex('.', Item) + 1) + 1)+1, len(Item)),1,
charindex('-',substring(Item, charindex('.', Item, charindex('.', Item, charindex('.', Item) + 1) + 1)+1, len(Item)))-1) IPStart ,
substring(Item,1, charindex('.', Item, charindex('.', Item, charindex('.', Item) + 1) + 1)) IPExt,
reverse(substring(reverse(Item),1,charindex('.',reverse(Item))-1)) MaxIp
from #IPAddresses where charindex('-',Item)>0
open Cur_IPAddress
fetch next from Cur_IPAddress into @IPStart, @IPExt, @MaxIp
while @@fetch_status = 0
begin
;with X
as(
select @IPStart Lev
union all
select X.Lev+1
from X
where X.Lev < @MaxIp
) insert into #IPAddresses
select @IPExt +cast(Lev as varchar) Item from X option(maxrecursion 1000)
fetch next from Cur_IPAddress into @IPStart, @IPExt, @MaxIp
end
close Cur_IPAddress
deallocate Cur_IPAddress
delete from #IPAddresses where charindex('-', Item)>0
--select * from #IPAddresses
end
他們都開始「255.255.120。」? –
字符串操作在調用程序中通常會更好,而不是在SQL Server中(它沒有非常強大的字符串操作方法) – xanatos
請不要根據發生某些事情發生的情況來創建示例。添加涵蓋所有案例的示例。 –