尝试提取单词'by'和字符'。'之间的子字符串,但不想包含'by'或'。'在结果中。我已经尝试过在这个网站上找到的几个版本的子串和patindex,但是不能完全得到理想的结果。提前感谢您的任何建议。
样本数据:史密斯,吉姆,下午12:31。 期望的结果:史密斯,吉姆
答案 0 :(得分:0)
这是可能的解决方案,它将适应大多数情况。看看:
select
substring(s,CHARINDEX(s1,s)+len(s1)+1,charindex(s2,s)-len(s2)-(CHARINDEX(s1,s)+len(s1)))
from (
select
'12:31 PM by Smith, Jim.' as s,
'by' as s1,
'.' as s2
) as a
答案 1 :(得分:0)
我想为此使用charindex,所以我用ascii值6替换了'by'这个词,这不应该是你可以用键盘输入的东西。
DECLARE @newstring varchar(100) = (SELECT REPLACE('12:31 PM by Smith, Jim.', 'by', char(6)))
SELECT SUBSTRING( @newstring
, CHARINDEX(CHAR(6), @newstring) + 1
, CHARINDEX('.', @newstring) - CHARINDEX(CHAR(6), @newstring) - 1
)
提供输出:
Smith, Jim