SQL Server:charindex返回错误的索引

时间:2013-11-28 21:03:27

标签: sql sql-server

我有以下查询:

SELECT 
    substring(Content, charindex(N'<img src=''http://tex.', Content), 
                       charindex(N'class=''latex-formula''>', Content)+22) as Img
FROM 
    [Scyk].[dbo].[Posts]
WHERE 
    content LIKE '%<img src=''http://tex.%'

现在我希望它能为我提供数据库中的所有<img>标签。但相反,它返回的内容如下:

<img src='http://tex.z-dn.net/?f=x%3Dlog_%7B%5Csqrt%7B2%7D%7D64' id='TexFormula' onerror="texError(this)" title='x=log_{\sqrt{2}}64' alt='x=log_{\sqrt{2}}64' align='absmiddle' class='latex-formula'> to:</p><p>a)

如果字符串的结尾是随机结束的,那么它可能是很少的字符,或者它可能是很多字符太多。我的查询有什么问题?

2 个答案:

答案 0 :(得分:2)

我认为substring()的第三个参数是要提取的部分的长度,而不是结束索引。你必须从第二个中减去第一个charindex以获得长度。

答案 1 :(得分:0)

第三个参数是长度而不是索引。