我有以下文字字段,我试图在“评论者”之后提取名称。我怎样才能在TSQL中执行此操作? 他的信息如下:
<p>Assessed By: Joe Thomas</p>
<p>Reviewed By: Fred Smith</p>
<p>The end of document</p>
答案 0 :(得分:1)
如果你想使用变量传递的不同字符串更灵活,你可以这样做。
DECLARE @Mytext AS VARCHAR(200)
SET @Mytext = '<p>Assessed By: Joe Thomas</p>
<p>Reviewed By: Fred Smith</p>
<p>The end of document</p>'
SELECT LEFT(RIGHT(@Mytext, 42), CHARINDEX('<', RIGHT(@Mytext, 42)) - 1)
/ *或者为了使其更加健壮,您可以计算索引值 而不是传递固定值,在这种情况下为42。 12是文本的长度&lt; Review By:* /
SELECT LEFT(RIGHT(@Mytext, (LEN(@Mytext) -
PATINDEX('%Reviewed By:%', @Mytext)) - 12),
CHARINDEX('<', RIGHT(@Mytext,LEN(@Mytext) -
PATINDEX ('%Reviewed By:%', @Mytext) - 12)) - 1)