SqlServer学习——获取不重复字符串中某一段

191 阅读1分钟

SqlServer获取不重复字符串中某一段

当有一段不重复字符串,如abcdefg,如何得出其中c和f之间的内容(不包含cf),个人的实现如下

DECLARE @str varchar(max)
DECLARE @str2 varchar(max)

select @str = 'abcdefg'

-- 截掉了abc	@str2 = defg
select @str2 = RIGHT(@str,LEN(@str)-CHARINDEX('c',@str))

-- 取f前面的字符串
select LEFT(@str2,CHARINDEX('f',@str2)-1)

大体思路就是先从右边截取字符串,得到c后面的内容,之后再从左边截取字符串,得到结果。

这应该是这个问题比较暴力的一种方式了,如果有更好的方法欢迎大家留言一起讨论。