您的位置:首页 > 数据库

用SQL语句统计IP地址前三段

2008-04-27 20:40 585 查看
/*writtenbyJaron,2003-07-10*/
/* 首次发表于CSDN*/
/*转载请注明出处和保留此版权信息*/

在做统计专家时,我们需要对IP地址段进行统计和分析,这里应用SQL-SERVER的自定义函数和存储过程实现在中直接生成结果,以下代码稍作修改即可。

/* SQL语句*/

selecttop99dbo.fn_IPleft3(IPAddress),count(id)FROMtblStatisticalDetail groupbydbo.fn_IPleft3(IPAddress)orderbycount(id)desc

/*自定义函数的内容*/

CREATEfunctionfn_IPleft3(@IPaddrvarchar(100))
returnsnvarchar(50)
as
begin

declare@IP_resaultvarchar(100)
set@IP_resault=''

declare@aavarchar(100),@bbint,@ccint
set@aa=@IPaddr

set@bb=0
set@cc=charindex('.',@aa)
set@IP_resault=@IP_resault+right('00'+substring(@aa,@bb,@cc-@bb)+'.',4)

while@cc>0
begin
set@bb=@cc+1
set@cc=charindex('.',@aa,@bb)
set@IP_resault=@IP_resault+right('00'+substring(@aa,@bb,casewhen@cc>0then@cc-@bbelselen(@aa)end)+'.',4)
end

returnleft(@IP_resault,11)
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: