首页 > 解决方案 > 从特定位置的字符串中获取值

问题描述

我正在使用 T-SQL 语言,我想知道从字符串中获取特定信息的最佳方式。

字符串示例:

类别:azd Nom du fichier:684157 文档类型:信息 ID:21542

这个想法是获得值“684157”,它总是在“fichier :”和“Type”之间。

我试过了substringcharindex但我想念一些东西。

这是我的代码

select substring(com, charindex('fichier : ', com)+len('fichier : '), charindex('Type', com)-charindex('fichier : ', com) + len('Type')) 
from myTable

标签: tsqlcharindex

解决方案


可能有一种更简洁的方法,但这里有一个使用CHARINDEXand的方法SUBSTRING

SELECT SUBSTRING(com,  
    CHARINDEX('fichier :', com) + LEN('fichier :'), -- start index
    CHARINDEX('Type :', com) - (CHARINDEX('fichier :', com) + LEN('fichier :'))) -- length
FROM MyTable

是的startIndex索引fichier :加上 的长度fichier :。结束索引是 的索引Type :。因为SUBSTRING我们需要使用起始索引和长度。为了计算子字符串的长度,我们使用 的索引Type :并减去我们计算的内容startIndex


推荐阅读