SQL Server中提取第二个与第三个斜杠间的可变长度值
SQL Server提取第二个与第三个斜杠间的内容
通用兼容版本(适配所有SQL Server版本)
通过嵌套CHARINDEX精准定位斜杠位置,再用SUBSTRING截取目标片段:
SELECT SUBSTRING( your_column, -- 截取起始点:第二个斜杠的位置 + 1 CHARINDEX('/', your_column, CHARINDEX('/', your_column, CHARINDEX('/', your_column) + 1) + 1) + 1, -- 截取长度:第三个斜杠位置 - 第二个斜杠位置 - 1 CHARINDEX('/', your_column, CHARINDEX('/', your_column, CHARINDEX('/', your_column) + 1) + 1) - CHARINDEX('/', your_column, CHARINDEX('/', your_column) + 1) - 1 ) AS target_content FROM your_table WHERE your_column LIKE '%/%/%/%' -- 过滤出至少包含三个斜杠的字符串
简洁高效版本(SQL Server 2022及以上)
借助STRING_SPLIT的ordinal参数,直接获取拆分后的第三个元素:
SELECT value AS target_content FROM your_table CROSS APPLY STRING_SPLIT(your_column, '/', 1) -- 启用ordinal参数保留拆分顺序 WHERE ordinal = 3
以示例字符串123/123/123456789/12测试,两种方法均可返回结果123456789。
内容的提问来源于stack exchange,提问作者dnk
相关产品推荐
相关产品推荐

