用户 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/