首页 > 解决方案 > SQL Server 中的循环 - IP 的迭代

问题描述

样本输入

IP开始

样本输出

在此处输入图像描述

我相信这可以使用 WHILE 循环来解决,但无法弄清楚如何将其取消旋转到单个列中,同时只增加最后一个数字。

编辑:IP 范围由我制作,我随机选择它们。

标签: sqlsql-serversql-server-2016

解决方案


我会留下这个答案,以防它帮助任何人。然而,这是针对 Postgres 的。

目前尚不清楚基本类型是什么,但您可以inet为此使用函数——通过转换为 anint并再次返回:

select ip + '0.0.0.0'::inet, (ip + '0.0.0.0'::inet)::text, host(ip + '0.0.0.0'::inet)
from t cross join lateral
     generate_series(ips::inet - '0.0.0.0'::inet, ipe::inet - '0.0.0.0'::inet, 1) ip;

是一个 db<>fiddle。

第一列是inet值的表示。第二种是字符串表示,但使用标准 IPV4 表示法。最终看起来像输入数据。


推荐阅读