我使用patindex
在我的nvarchar中找到了一个字符位置
declare @pmReportText nvarchar(max)
set @pmReportText = 'lots and lots of text;
declare @emptyTag int
select @emptytag = patindex('%></%',@pmReportText) +1
从那一点(@emptyTag
中的值)我需要找到左边的第一个匹配。 (patindex('>%<',@pmReportText)
)
我需要与当前nvarchar(@pmReportText
)相关的位置,所以我不认为使用
declare @leftOfTag nvarchar(max)
select @leftOfTag = rtrim(left(@pmReportText, @emptytag-1))
select @leftOfTag = reverse(@leftOfTag)
declare @startEmptyTag int
select @startEmptyTag = patindex('>%<',@leftOfTag)
将起作用,因为该位置与原始varchar @pmReport
我想做的是什么?如果是这样我将如何去做呢?
下面的格林是我所处的位置(@emptyTag),我希望得到红色的位置。
答案 0 :(得分:1)
是的,您开始使用的将会带来解决方案。
如您所知,您的@startEmptyTag
将包含子字符串REVERSE中搜索字符的位置。
然后考虑一下,这相当于搜索字符在原始字符串中@emptyTag
左侧的距离(字符数)。
现在您只需要从@emptyTag
的位置减去距离,即可获得搜索字符的位置。你必须用&#34;搜索字符&#34;的长度来做一些数学运算。如果它不止一个字符,当然。