sql server ip地址between 如何查询

解决问题的场景

 

用户表里有很多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')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值