SQL Server TSQL 將 IP 取網段 Prefix

2022-01-12

筆記 SQL Server 在有限的函數工具下,如何使用藉由字串函數來取 IP Prefix 網段,用以分析 IIS Logs 資料。

SQL Server Logo

說明

Example Codes

DECLARE @IP varchar(16)
SET @IP = '10.1.200.30'
SELECT Substring(@IP, 1, Len(@IP) - CharIndex('.', Reverse(@IP))) AS 'IP Prefix'
-- 10.1.200

User Defined Function

CREATE FUNCTION dbo.ufnIPPrefix (@ip varchar(16))
RETURNS varchar(16)
WITH EXECUTE AS CALLER
AS
BEGIN
    RETURN(Substring(@ip, 1, Len(@ip) - CharIndex('.', Reverse(@ip))));
END;
GO

包裝為 User Defined Function,可以遞迴使用,取任意段數的 IP:

SELECT dbo.ufnIPPrefix(dbo.ufnIPPrefix('10.112.113.114')) AS 'IP Prefix'
-- 10.112

相關連結

SQL Server Integrated Service 初探

SQL Server 閃電般快速查詢指南⚡

SQL Server 周邊工具彙整筆記

SQL Server 學習資源筆記