MS SQL Server 2008 - 提取前3个八位字节的IP地址

时间:2014-08-26 20:06:00

标签: sql sql-server string

我正在使用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 ...

我可以使用什么功能?

1 个答案:

答案 0 :(得分:4)

这可能会帮助您使用什么。

这里是小提琴,虽然此时似乎遇到间歇性的连接问题: http://www.sqlfiddle.com/#!3/55cda0/15

基本上你可以使用这段代码选择值:

SELECT LEFT(IP_Address, LEN(IP_Address) - CHARINDEX('.',REVERSE (IP_Address))) FROM IP

首先,它绕过字符串,它将查找第一个(实际上是最后一个,哈!)点(或您设置的任何分隔符)。

在此之后,您只需选择剩余字符串的最左侧,从总长度中减去分隔符的位置;因此在最后一个分隔符之后摆脱任何东西 - 在你的情况下是一个点。