周一至周五 : 08:30 - 17:30 客服专员电话/微信:17301649371 QQ:2627049059
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
IP地址排序问题。
显示全部楼层 倒序浏览 发表日期 2017-09-18 08:36:42 9172次阅读 5次回复
bxf
2017-9-18 08:36:42
已解决
9172 5
IP地址排序问题。
bxf2017-09-18 08:36:42
1111.png
如何利用辅助字段将原IP地址格式变为修改后IP格式。
例如
10.90.0.1  变为10.90.0.001,
10.90.0.21变为10.90.0.021
10.90.0.111不需要变更

最佳答案

hong90342会元 关注Ta

2017-09-18 08:36:43

如果仅仅第四位,则=TEXT(MID(A1,1,FIND(".",A1)-1),"00"&"."&TEXT(MID(A1,FIND(".",A1)+1,2),"00"))&"."&TEXT(MID(A1,FIND(".",A1,5)+1,2),"0")&"."&TEXT(MID(A1,FIND(".",A1,8)+1,3),"000") 修改对应字段中位数即可,应用TEXT函数
查看完整内容
如果仅仅第四位,则=TEXT(MID(A1,1,FIND(".",A1)-1),"00"&"."&TEXT(MID(A1,FIND(".",A1)+1,2),"00"))&"."&TEXT(MID(A1,FIND(".",A1,5)+1,2),"0")&"."&TEXT(MID(A1,FIND(".",A1,8)+1,3),"000")
修改对应字段中位数即可,应用TEXT函数
QQ2627049059
给你提供一个思路:网上搜索一下sql截取最后出现字符之后的字符(即最后一个点),估计还得求出最后一个点之前出现的字符,比如10.90.0.1,之前的字符是10.90.0,之后字符是1,然后最后字符1加上'00',变成001,取右边三位,即001,之前字符加上001,最后就变成10.90.0.001,10.90.0.21也是一样,21加上00变成0021,取右边三位021,这个方案可以试一下
假如IP在A1,可用公式=TEXT(MID(A1,1,FIND(".",A1)-1),"000"&"."&TEXT(MID(A1,FIND(".",A1)+1,2),"000"))&"."&TEXT(MID(A1,FIND(".",A1,5)+1,2),"000")&"."&TEXT(MID(A1,FIND(".",A1,8)+1,3),"000"),这样四位IP都是三位的
QQ2627049059
bxf

2017-9-18 09:10:45

透过手指间看天 发表于 2017-9-18 08:56
给你提供一个思路:网上搜索一下sql截取最后出现字符之后的字符(即最后一个点),估计还得求出最后一个点 ...

有具体的公式或者命令吗? 我对SQL着个不懂。求教。
case when len(right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1))=1 then '00'+right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1) when len(right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1))=2 then '0'+right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1) else right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1) end

将本报表.[截取数据_主表].[IP]替换为来源字段

精彩评论5

如果仅仅第四位,则=TEXT(MID(A1,1,FIND(".",A1)-1),"00"&"."&TEXT(MID(A1,FIND(".",A1)+1,2),"00"))&"."&TEXT(MID(A1,FIND(".",A1,5)+1,2),"0")&"."&TEXT(MID(A1,FIND(".",A1,8)+1,3),"000")
修改对应字段中位数即可,应用TEXT函数
QQ2627049059
给你提供一个思路:网上搜索一下sql截取最后出现字符之后的字符(即最后一个点),估计还得求出最后一个点之前出现的字符,比如10.90.0.1,之前的字符是10.90.0,之后字符是1,然后最后字符1加上'00',变成001,取右边三位,即001,之前字符加上001,最后就变成10.90.0.001,10.90.0.21也是一样,21加上00变成0021,取右边三位021,这个方案可以试一下
假如IP在A1,可用公式=TEXT(MID(A1,1,FIND(".",A1)-1),"000"&"."&TEXT(MID(A1,FIND(".",A1)+1,2),"000"))&"."&TEXT(MID(A1,FIND(".",A1,5)+1,2),"000")&"."&TEXT(MID(A1,FIND(".",A1,8)+1,3),"000"),这样四位IP都是三位的
QQ2627049059
bxf

2017-9-18 09:10:45

透过手指间看天 发表于 2017-9-18 08:56
给你提供一个思路:网上搜索一下sql截取最后出现字符之后的字符(即最后一个点),估计还得求出最后一个点 ...

有具体的公式或者命令吗? 我对SQL着个不懂。求教。
case when len(right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1))=1 then '00'+right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1) when len(right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1))=2 then '0'+right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1) else right( 本报表.[截取数据_主表].[IP] , charindex('.',reverse( 本报表.[截取数据_主表].[IP] ))-1) end

将本报表.[截取数据_主表].[IP]替换为来源字段
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |