从一组列值中识别有效 IP
Identify valid IP from a set of column values
我有一个列名称 ip_addr,其中包含有效 IP 和无效 IP。我希望仅对 Teradata 中的有效 IP 地址进行子集化。现在我正在使用以下但它似乎不起作用:
EXECUTE
(
create multiset volatile table base as
(
select distinct int_cust_ip_addr as ip_addr
from cm11_jan14
where int_cust_ip_addr like '%.%.%.%'
)
WITH DATA PRIMARY INDEX(ip_addr)
ON COMMIT PRESERVE ROWS
)
BY TERADATA;
TD14+支持正则表达式,这个returns1正确的IP4地址:
where REGEXP_SIMILAR (int_cust_ip_addr, '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$') = 1
对于 IP6,只需搜索 "regex ip6"
我有一个列名称 ip_addr,其中包含有效 IP 和无效 IP。我希望仅对 Teradata 中的有效 IP 地址进行子集化。现在我正在使用以下但它似乎不起作用:
EXECUTE
(
create multiset volatile table base as
(
select distinct int_cust_ip_addr as ip_addr
from cm11_jan14
where int_cust_ip_addr like '%.%.%.%'
)
WITH DATA PRIMARY INDEX(ip_addr)
ON COMMIT PRESERVE ROWS
)
BY TERADATA;
TD14+支持正则表达式,这个returns1正确的IP4地址:
where REGEXP_SIMILAR (int_cust_ip_addr, '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$') = 1
对于 IP6,只需搜索 "regex ip6"