Sql 是否有一个基于搜索单词来选择字符串特定部分的函数?
我试图从字段中始终存在的特定单词开始选择字符串的一部分 因此,这里有一个字段的示例: “仅限管理员使用-企业:人力资源:测试-历史记录” 我只想捕获文件路径,即“企业:人力资源:测试” 例如:Sql 是否有一个基于搜索单词来选择字符串特定部分的函数?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图从字段中始终存在的特定单词开始选择字符串的一部分 因此,这里有一个字段的示例: “仅限管理员使用-企业:人力资源:测试-历史记录” 我只想捕获文件路径,即“企业:人力资源:测试” 例如: SELECT SUBSTRING('Admin use only - Enterprise:Human Resources:Test - History', 17, 32) AS ExtractString; Result = Enterprise:Human Resources:Test 这个s
SELECT SUBSTRING('Admin use only - Enterprise:Human Resources:Test -
History', 17, 32) AS ExtractString;
Result = Enterprise:Human Resources:Test
这个select语句的问题是,它只适用于这个特定的示例,因为子字符串的开始和长度可能会发生变化 您需要使用charindex
SELECT SUBSTRING('Admin use only - Enterprise:Human Resources:Test - History',
CHARINDEX('-','Admin use only - Enterprise:Human Resources:Test - History')+1,
CHARINDEX('-','Admin use only - Enterprise:Human Resources:Test - History',CHARINDEX('-','Admin use only - Enterprise:Human Resources:Test - History')+1) -CHARINDEX('-','Admin use only - Enterprise:Human Resources:Test - History')-1)
所以,您想捕获“-”和“-”之间的所有内容?您使用的是什么DB品牌?使用Microsoft SQL Server Skye,我下面的答案应该可以解决您的问题。如果答案是正确的,请接受!您应该展示给出错误结果的示例