SQL Server 2008从长字符串中提取指定URL的查询语法咨询
SQL Server 2008 提取http://testurl/前缀URL的查询方案
由于SQL Server 2008不支持原生JSON解析、也无STRING_SPLIT等高版本内置函数,可通过基础字符串函数实现需求,以下是可行语法:
假设存储长JSON字符串的列名为json_content,目标表名为your_table,查询语句如下:
SELECT json_content, -- 新增临时列存储提取的URL CASE WHEN PATINDEX('%http://testurl/%', json_content) = 0 THEN NULL ELSE SUBSTRING( json_content, PATINDEX('%http://testurl/%', json_content), PATINDEX('%[ ",]%', SUBSTRING(json_content, PATINDEX('%http://testurl/%', json_content), LEN(json_content))) - 1 ) END AS extracted_testurl FROM your_table
逻辑说明
- 第一步通过
PATINDEX('%http://testurl/%', json_content)定位目标URL的起始索引,未匹配到则返回NULL - 第二步从起始索引位置向后截取剩余字符串,匹配第一个分隔符(空格、双引号、逗号,可根据实际业务数据补充分隔符规则)的位置
- 第三步通过
SUBSTRING精准截取出完整的目标URL
若你实际数据中URL后缀的分隔符和示例不一致,只需修改第二个
PATINDEX里的[ ",]规则即可,比如新增分号就改成[ ",;]
内容的提问来源于stack exchange,提问作者kivi12k
相关产品推荐
相关产品推荐

