我正在使用MS SQL Server 2008,我正在尝试提取IP地址的前3个八位字节
我尝试了解决方案Extract 1st Three Octets of an IPV4,但SUBSTRING_INDEX不是内置函数名称
select SUBSTRING_INDEX(IP_Address, '.',3) as octet, COUNT(*) as C
from ...
where ...
我可以使用什么功能?
答案 0 :(得分:4)
这可能会帮助您使用什么。
这里是小提琴,虽然此时似乎遇到间歇性的连接问题: http://www.sqlfiddle.com/#!3/55cda0/15
基本上你可以使用这段代码选择值:
SELECT LEFT(IP_Address, LEN(IP_Address) - CHARINDEX('.',REVERSE (IP_Address))) FROM IP
首先,它绕过字符串,它将查找第一个(实际上是最后一个,哈!)点(或您设置的任何分隔符)。
在此之后,您只需选择剩余字符串的最左侧,从总长度中减去分隔符的位置;因此在最后一个分隔符之后摆脱任何东西 - 在你的情况下是一个点。