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

来源:互联网 发布:理发会员软件下载 编辑:程序博客网 时间:2024/06/13 12:44
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>


/*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


<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击