我有一个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
更新 注册商标只是需要替换的一个例子。也可能有其他多字符替换。因此,可能需要更复杂的东西。例如,我可能会检测到'百事可乐',然后从键/值行的VALUE部分截断'百事可乐'......然后......尝试检测字符串中是否已存在截断值。如果没有,那么继续并替换值(类似的东西)。
答案 0 :(得分:2)
也许这个解决方案可以帮到你。它将更新value
未以®
结尾的记录,并在最后添加。
update ProductNames
set Value = Value + '®'
where Value not like '%®'
答案 1 :(得分:0)
update ProductNames set
Value = CASE WHEN CHARINDEX('®',value,1) = 0 then value+'®' else value end
答案 2 :(得分:0)
我无法想到一种简单的方法。迭代每个特殊关键字并检查这些单词的开头,中间和结尾个案,假设您需要空格来分隔每个关键字。根据业务逻辑的要求,将操作分解为几个步骤。昂贵的是,但我认为这是一次性的事情。更好的是,在添加/修改行时运行此例程。