PARSENAME ( 'object_name' , object_piece )
Server.Database.Schema.Objectobject_piece:1=Object、2=Schema、3=Database、4=Server
-- 假設表 cs 有欄位 ip 儲存 '192.168.1.100'
SELECT
PARSENAME(ip, 4) AS Octet1, -- 192
PARSENAME(ip, 3) AS Octet2, -- 168
PARSENAME(ip, 2) AS Octet3, -- 1
PARSENAME(ip, 1) AS Octet4 -- 100
FROM cs;
SELECT PARSENAME('A.B.C.D.E.F', 2); -- 結果: 'E' (倒數第 2 段)
SELECT PARSENAME('A.B.C.D.E.F', 4); -- 結果: 'C'
-- 版本號 '10.50.4000.0' 取 Major.Minor
SELECT PARSENAME('10.50.4000.0', 4) + '.' + PARSENAME('10.50.4000.0', 3); -- '10.50'
-- 檔名 'report.final.v2.docx' 取副檔名
SELECT PARSENAME('report.final.v2.docx', 1); -- 'docx'
REPLACE(str, '/', '.')STRING_SPLIT (SQL 2016+) + 序號過濾JSON_VALUE (SQL 2016+) 配合 REPLACE 轉 JSON 陣列PARSENAME 是處理固定四段點分隔字串 (IP、版本號、四段式命名) 的極簡利器,善用可避免複雜的 CHARINDEX/SUBSTRING 組合。