日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IP地址转化为数字,charindex ,SUBSTRING

發布時間:2023/12/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IP地址转化为数字,charindex ,SUBSTRING 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SET NOCOUNT ON; declare @I_PCity table(IPStart nvarchar(255), Area nvarchar(255),CityID int,IPID int )declare @IPStart nvarchar(255),@diana int, --存放點@dianb int,@dianc int,@liea bigint, -- 存放列 @lieb bigint,@liec bigint,@lied bigint,@intlon bigint --存放化為的整數insert into @I_PCity(IPStart, Area, CityID, IPID ) select IPStart, Area, CityID, IPID from I_IPCity (nolock) where IPID>= 430000 and IPStart is not null and IP3 is null-- while( exists(select top 1 * from @I_PCity))beginset @IPStart= (select top 1 IPStart from @I_PCity );set @diana= charindex('.',@IPStart) --第一個點的下標set @dianb= charindex('.',@IPStart, @diana +1 ) --第二個點的下標set @dianc= charindex('.',@IPStart, @dianb +1 ) --第三個點的下標set @liea = SUBSTRING(@IPStart,1,@diana-1) --第一列的值 set @lieb =SUBSTRING(@IPStart,@diana+1,@dianb-@diana-1 )--第二列的值 set @liec =SUBSTRING(@IPStart,@dianb+1,@dianc-@dianb-1 )--第三列的值set @lied =SUBSTRING(@IPStart,@dianc+1, LEN(@IPStart))--第四列的值set @intlon= @lied+(@liec*1000)+(@lieb*1000000)+(@liea*1000000000) --拼為整數update I_IPCity set IP3 =@intlon where IPID= (select top 1 IPID from @I_PCity)delete top(1) from @I_PCityend

返回前臺所查到的結果:

USE [91hurong] GO /****** Object: StoredProcedure [dbo].[ProIP] Script Date: 08/13/2015 08:40:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[ProIP]-- Add the parameters for the stored procedure here@str varchar(50) AS BEGINdeclare @IPStart nvarchar(255), --存放傳入的數據@diana int, --存放點@dianb int,@dianc int,@liea bigint, -- 存放列 @lieb bigint,@liec bigint,@lied bigint,@intlon bigint --存放化為的整數set @IPStart= @str; --傳入的IP'1.11.6.6'-- set @IPStart= '1.11.6.6'; set @diana= charindex('.',@IPStart) --第一個點的下標set @dianb= charindex('.',@IPStart, @diana +1 ) --第二個點的下標set @dianc= charindex('.',@IPStart, @dianb +1 ) --第三個點的下標set @liea = SUBSTRING(@IPStart,1,@diana-1) --第一列的值 set @lieb =SUBSTRING(@IPStart,@diana+1,@dianb-@diana-1 )--第二列的值 set @liec =SUBSTRING(@IPStart,@dianb+1,@dianc-@dianb-1 )--第三列的值set @lied =SUBSTRING(@IPStart,@dianc+1, LEN(@IPStart))--第四列的值set @intlon= @lied+(@liec*1000)+(@lieb*1000000)+(@liea*1000000000) --拼為整數declare @inta bigintset @inta=(select top 1 IP3 from I_IPCity where IP3>@intlon and IPStart is not null and IPID is not null and IP3 is not null order by IP3 asc)select top 1 * from I_IPCity where IP3<@inta and IPStart is not null and IPID is not null and IP3 is not null order by IP3 desc --返回'61.177.117.6'在表中對應的數據
END
exec ProIP '61.177.117.6'

說明:

'Arg.ea' 對應位置:1 2 3 4 5 6charindex('.','Arg.ea') >0 --如果大于零,則表示字符串Area中含有字符串CityName; 此例為truecharindex('.','Arg.ea',2 ) -- 從第二個位置后,也就是從 字母'r'后開始找,先判斷 ‘g’是否為‘.’ ,為否;繼續判斷‘.’是否為‘.’,此表達式為trueSUBSTRING('Arg.ea',1,2) --截取 字符串 'Arg.ea'中 第一個位置到第二個位置 ;也就是‘Ar’

?

轉載于:https://www.cnblogs.com/woloveprogram/p/4727591.html

總結

以上是生活随笔為你收集整理的IP地址转化为数字,charindex ,SUBSTRING的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。