SQL 解析IP地址,你想把一个 IP 地址的各个字段分解为四列,考虑下面的 IP 地址。
SQL 解析IP地址 问题描述
你想把一个 IP 地址的各个字段分解为四列,考虑下面的 IP 地址。
你希望查询语句能返回如下所示的结果。
SQL 解析IP地址 解决方案
具体的解决方案取决于数据库提供的内置函数。不管是哪种数据库,关键之处都在于如何快速定位英文句号以及英文句号前后的数字。
DB2
使用 WITH
子句递归地查询针对 IP 地址的循环操作,同时使用 SUBSTR
函数可以很容易解析 IP 地址。在 IP 地址开头加上一个英文句号,这样每一组数字的开头位置都有英文句号,因而我们能以相同的方式处理所有的四组数字。
MySQL
使用函数 SUBSTR_INDEX
很容易解析 IP 地址。
Oracle
使用内置函数 SUBSTR
和 INSTR
解析和遍历 IP 地址。
PostgreSQL
使用内置函数 SPLIT_PART
解析 IP 地址。
SQL Server
使用 WITH
子句递归地查询针对 IP 地址的循环操作,同时使用 SUBSTR
函数可以很容易解析 IP 地址。在 IP 地址开头加上英文句号,这样每一组数字的开头位置都有英文句号,因而我们能以相同的方式处理全部 4 组数字。
SQL 解析IP地址 扩展知识
有了数据库提供的内置函数,我们很容易遍历字符串的各个部分。关键之处在于如何定位 IP 地址里英文句号。然后,我们就能解析英文句号之间的数字。