gpt4 book ai didi

SQL 计算 IP 列中的不同子网

转载 作者:行者123 更新时间:2023-12-04 23:33:02 25 4
gpt4 key购买 nike

我需要获取 IP 列中所有不同子网的计数,并按 MS SQL 上的子网进行分组。即...计算所有具有 192.168.0、192.168.1、10.10.10 等子网的 ip。

任何帮助表示赞赏。谢谢

最佳答案

这不是非常有效,但假设地址存储在名为 IPAddress 的 varchar 列中。 , 你可以做:

SELECT
SUBSTRING(IPAddress, 1, LEN(IPAddress) - CHARINDEX('.',REVERSE(IPAddress))),
COUNT(*)
FROM
...
GROUP BY
SUBSTRING(IPAddress, 1, LEN(IPAddress) - CHARINDEX('.',REVERSE(IPAddress)))

这还没有经过测试,所以我可能会在某个地方偏离一个或缺少一个括号。

基本思想是你想通过找到最后一个点来砍掉结尾,为了找到最后一个点,你可以反转字符串并找到第一个点,即 CHARINDEX会很容易做到。要将“第一个点”位置转换回原始字符串中的“最后一个点”位置,请从原始长度中减去该位置。

(如果我的假设是错误的并且它没有存储为文本,除非您还提供数据类型,否则您不太可能得到有意义的答案。)

关于SQL 计算 IP 列中的不同子网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2478061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com