解决问题的场景
用户表里有很多IP地址,要求将表里所有IP地址分类到相应的IP端内,并求数量
利用T-SQL 进行定义相应的函数
create function dbo.fn_IP(@ip varchar(15))
returns bigint
begin
return parsename(@ip,4)*cast(16777216 as bigint)+parsename(@ip,3)*65536+parsename(@ip,2)*256+parsename(@ip,1)
end
declare @tb table (id int,ip varchar(15))
insert @tb select 1,'10.210.128.207'
UNION ALL select 2,'10.210.128.206'
UNION ALL select 3,'10.210.128.205'
UNION ALL select 4,'10.210.128.204'
UNION ALL select 5,'10.210.128.203'
UNION ALL select 6,'10.210.128.202'
UNION ALL select 7,'10.210.128.201'
select id,ip,dbo.fn_IP(ip) from @tb
where dbo.fn_IP(ip) between dbo.fn_IP('10.210.128.203') and dbo.fn_IP('10.210.128.205')
IP地址分类与计数

本文介绍了一种使用T-SQL定义函数的方法,该方法能够将数据库中的IP地址转换为整数并进行分类,便于进一步统计同一IP段内的地址数量。
2433

被折叠的 条评论
为什么被折叠?



