求一条 将 点分十进制的IP地址转换为 数值 的SQL语句??
有IP地址查询表         IP         :          
       startIP         varchar                     50                
       endIP               varchar                     50                      
       local               varchar                     100          
 其中   起始IP   和   结束IP   均为   点分十进制的IP地址   (如   202.12.34.56) 
 为了便于比较,我又在此表加了两项 
       startIP         varchar                     50                
       endIP               varchar                     50    
       start               long                               
       end                     long 
       local         varchar                     100          
 我想   通过SQL   Server   把startIP   转换为   数值后保持到相应的start,   endIP   转换为 
 end   ,大家能否提供一条   sql   语句   ,执行完成这个修改,谢谢   
------解决方案--------------------CREATE function ip_num(@ip varchar(50)) 
 returns float 
 as 
 begin 
 declare @index int	 
 declare @Ip_1 int 
 declare @flag int 
 declare @ipnum float 
 set @index=1 
 set @flag=4 
 set @ipnum=0 
  	while (@flag> 1 ) 
 		begin 
 			set @flag=@flag-1 
 			set @index=CHARINDEX( '. ',@ip) 
 			set @Ip_1=left(@ip,@index-1) 
 			set @ip=right(@ip,len(@ip)-@index) 
 			set @ipnum=@ipnum+@Ip_1*cast(power(256,@flag) as float) 
 		end  
 	if charindex( ': ',@ip) <> 0 
 		begin 
 			set @index=charindex( ': ',@ip) 
 			set @ip_1=left(@ip,@index-1) 
 			set @ipnum=@ipnum+@ip_1 
 		end 
 	else 
 		set @ipnum=@ipnum+@ip-1 
 return(@ipnum)   
 end
------解决方案--------------------create function test(@ip varchar(50)) 
 returns bigint 
 as 
 begin   
 declare @s varchar(50) 
 select @s= ' ',@ip=@ip+ '. ' 
 while charindex( '. ',@ip)> 0 
 begin 
 	select @s=@s+left(@ip,charindex( '. ',@ip)-1), 
 		@ip=stuff(@ip,1,charindex( '. ',@ip), ' ') 
 end 
 return convert(bigint,@s) 
 end   
 select dbo.test( '202.12.34.60 ')