0

我有一个 ProductName 键/值对列表,如下所示:

CREATE TABLE [dbo].[ProductNames]
(
    [Key] [nvarchar](100) NULL,
    [Value] [nvarchar](100) NULL
)

包含这样的值:

'Pepsi', 'Pepsi®'
'Coke', 'Coke®'

我需要在尚未包含产品注册商标的文本字段中查找和替换值......并将其替换为完整的商标字符串。

例如:

 1. if 'Pepsi' is alone....it becomes 'Pepsi®'
 2. if 'Pepsi®' already exists...do nothing

更新: 注册商标只是要替换的东西的一个例子。也可能有其他多字符替换。因此,可能需要更复杂的东西。例如,我可能会检测到“Pepsi”,然后从键/值行的 VALUE 部分截断“Pepsi”……然后……尝试检测字符串中是否已经存在截断的值。如果没有,那么继续并替换值(类似的东西)。

4

3 回答 3

2

也许这个解决方案会帮助你。它将更新value不以 结尾的记录,®并将其附加在末尾。

update ProductNames
set Value = Value + '®'
where Value not like '%®'
于 2012-08-02T14:35:39.467 回答
0

我想不出一个简单的方法来解决这个问题。遍历每个特殊关键字并检查这些单词的开头、中间和结尾,假设您需要空格来分隔每个关键字。根据业务逻辑的要求,将操作分解为几个步骤。很贵,是的,但我想这是一次性的。更好的是,在添加/修改行时运行一次此例程。

于 2012-08-03T06:46:42.890 回答
0
update ProductNames set 
   Value = CASE WHEN CHARINDEX('®',value,1) = 0 then value+'®' else value end
于 2012-08-02T15:08:04.967 回答