sql联合查询问题,求高手解答?

Luck_cl 2010-07-15 02:12:42
2个表:一个是ip库存表 v,另一个是用户表user
关联字段:user.userip
需要联合查询 userip 在 v.ipb,v.ipe之间的数据
v.ipb,v.ipe 通过算法已转换为数字
v.ipb,v.ipe是通过c#中转换,算法:
string[] arr = IP.Split('.');
double ipNum = 0, pow = 256;
ipNum = double.Parse(arr[0]) * Math.Pow(pow, 3) + double.Parse(arr[1]) * Math.Pow(pow,2) + double.Parse(arr[2])*pow + double.Parse(arr[3]);
如何在sqlserver中将user.userip字段数据转换成这样算法的结果,求解??
分赌球输完了,就40分,求高手帮忙解决??
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Luck_cl 2010-07-15
  • 打赏
  • 举报
回复
再顶,求解!
Luck_cl 2010-07-15
  • 打赏
  • 举报
回复
自己顶一个!
Luck_cl 2010-07-15
  • 打赏
  • 举报
回复
需要统计各个省份注册ip数量
select a.ip_provence,count(*) from (
select c.userid,c.userip,c.title,v.ip_provence from ipub.dbo.downinfo as c
inner join ShowUserIp.dbo.v on c.userip between v.ip_begin and v.ip_end
) as a group by a.ip_provence

这就是需要将c.userip类似于c#中的转换
string[] arr = IP.Split('.');
double ipNum = 0, pow = 256;
ipNum = double.Parse(arr[0]) * Math.Pow(pow, 3) + double.Parse(arr[1]) * Math.Pow(pow,2) + double.Parse(arr[2])*pow + double.Parse(arr[3]);
就是不知道这sql中如何实现,简单的说就是需要截取字符串,假如ip:58.40.12.91
需要转换的结果为:58×256×256×256 + 40×256×256 + 12×256 + 91
htl258_Tony 2010-07-15
  • 打赏
  • 举报
回复
看不明白,最好提供几个测试数据和想要的结果说明一下,大家更容易理解。

22,199

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧