sql - 替换 select 语句中的多个实例

标签 sql sql-server replace

用户 SQLServer 2005 这是我遇到的字符串示例: {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial Rounded MT Bold;}{\f1\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\f0\fs54 1000\f1\fs20\par }

我想用“Times New Roman”替换任何字体名称

我可以使用(textlong1 是字段)获取第一个:

 Select Replace(textlong1, 
        CASE When CharIndex(';',textlong1)> 10 Then
        SubString(textlong1
        , Charindex('fcharset',textlong1)+10
        , CharIndex(';',textlong1) - Charindex('fcharset',textlong1)-10) 
        Else '' End
        , 'Times New Roman') From exampletable

我使用 case 语句来防止 SubString 出错。

由于我没有替换“fcharset”,即使我循环,它也找不到第二个实例(总是卡在第一个实例上)。

最佳答案

如果您可以集成 .NET CLR 功能(MSDN 有很多这样做的示例),您可以使用正则表达式替换并使您的任务变得非常简单。

关于sql - 替换 select 语句中的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/860458/

相关文章:

c++ - 在 C++ 中修剪字符串

Javascript 用 8 和 9 替换字符串不起作用......但其他数字可以......?

mysql - MySQL 中的日期时间转换

sql - 单个 CASE 语句中的多列

SQL 加入两次相同的表?

c# - SQL注入(inject)存储过程

mysql - 我怎样才能选择一些行,比如 "get as many rows as possible in 5 seconds"?

sql-server - 使用 SQL Server 中的一张表上的聚合函数更新查询

sql-server - SQL Server 2012 的 select * 返回列的顺序是否发生变化?

python - 通过索引在 python 中使用 replace() 方法