在sql文本之间附加值

时间:2018-08-16 07:37:13

标签: sql sql-server

我必须在iframe和宽度之间添加class =“ value”,我已经尝试过

UPDATE TableName
SET MemoText = CONVERT(nvarchar(max), MemoText) + ' class="value" '
WHERE memotext LIKE '%<iframe width="100%" height="500" "%'

此查询最后附加了class="value",但我必须在class="value"iframe之间添加width

2 个答案:

答案 0 :(得分:6)

使用替换功能:

import scrapy
from scrapy.item import Item, Field
class HandsetItem(scrapy.Item):
    Name =scrapy.Field()  
    Price =scrapy.Field()

答案 1 :(得分:1)

STUFF函数在这里很方便:

WITH yourTable AS (
    SELECT '<iframe width="100%" height="500"' AS col
)

SELECT    
    STUFF(col, PATINDEX('<iframe width="[0-9]', col) + 9, 0, 'class="value" ') AS col_out
FROM yourTable
WHERE col LIKE '%<iframe width="100%" height="500"%';

enter image description here

Demo

这里唯一值得一提的技巧是,如果我们想使用STUFF 插入文本,在字符串的确切位置上而不替换任何内容,则设置内容长度为零。

还请注意,如果您打算对涉及程度很大的HTML内容进行替换工作,则应使用JavaScript之类的解析器,而不要手动尝试这样做。

此答案优于公认的答案,因为上面的方法使用了更具针对性的替代方法。例如,接受的答案将替换iframe的所有所有实例,甚至包括没有跟随width属性的实例。