sql替换两个字符串之间的所有字符

标签 sql sql-server sql-server-2000

我试图找出一种方法来更新/替换两个字符串之间的文本。

例如,我需要能够更新该字段并仅替换以下脚本标签之间的内容,而保持打开脚本标签之前的文本不变。

I want to keep this string<script type="text/javascript" language="javascript">********</script>

我想 REPLACE 不会起作用,因为脚本标签之间的文本会有所不同。是否有某种类型的通配符?
UPDATE Products_Joined 
SET TechSpecs = REPLACE (CAST(TechSpecs AS NVARCHAR(MAX)), '<script type="text/javascript" language="javascript">********</script>', '<script type="text/javascript" language="javascript">new text</script>' )

更新:@Parkyprg 回答这有效,但不能取代结束 </script>标签。
我结束了这个。
I want to keep this string new text</script>

我们如何删除结束脚本标签?
UPDATE Products_Joined
SET TechSpecs = REPLACE(CAST(TechSpecs AS NVARCHAR(MAX)), 
SUBSTRING(CAST(TechSpecs AS NVARCHAR(MAX)),
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs),
CHARINDEX('</script>',CAST(TechSpecs AS NVARCHAR(MAX))) - 
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs)
),' new text') 

最佳答案

DECLARE @OpenTag varchar(100)
SET @OpenTag = '<script type="text/javascript" language="javascript">'

UPDATE Products_Joined
SET TechSpecs  = STUFF(TechSpecs ,
                       CHARINDEX(@OpenTag, TechSpecs ,1)  + LEN(@OpenTag),
                            CHARINDEX('</script>',TechSpecs ,1)-(CHARINDEX(@OpenTag, TechSpecs ,1)  + LEN(@OpenTag)), 
                       'New Text')

关于sql替换两个字符串之间的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850798/

相关文章:

sql - 如何检测数据集中的所有空列并删除\删除它们?

sql - 如何计算百分比

php - 来自同一数据库列的 MySQL 查询和数组输出

sql - 表中身份列的显式值错误?

sql - 选择 SQL JOIN 失败的值

mysql - MySQL中按组计算总计

sql-server - 如何从 MS SQL 2008 中的数据库 ID、文件 ID、页面 ID 获取表名?

SQL Server 数据库开发标准

t-sql - MS SQL 2000 : Turn off logging during stored procedure

sql-server - 为什么 SQL Server 中的统计信息很快就会过时?