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

更新: 登録商標は、置き換えられるものの 1 つの例にすぎません。他の複数文字の置換もある可能性があります。そのため、おそらくもっと複雑なものが必要です。たとえば、おそらく「ペプシ」を検出し、キー/値行の値の部分から「ペプシ」を切り捨てます...そして...その切り捨てられた値が文字列に既に存在するかどうかを検出しようとします。そうでない場合は、先に進んで値を置き換えます(そのようなもの)。

4

3 に答える 3

2

おそらく、このソリューションが役立つでしょう。valueで終わらないレコードを更新し®、最後に追加します。

update ProductNames
set Value = Value + '®'
where Value not like '%®'
于 2012-08-02T14:35:39.467 に答える
0
update ProductNames set 
   Value = CASE WHEN CHARINDEX('®',value,1) = 0 then value+'®' else value end
于 2012-08-02T15:08:04.967 に答える
0

これが機能する簡単な方法は考えられません。各特別なキーワードを反復処理し、各キーワードを区切るために空白が必要であると仮定して、これらの単語の最初、中間、および最後のケースを確認します。ビジネス ロジックの必要に応じて、操作をいくつかのステップに分割します。確かに高価ですが、それは 1 回限りのことだと思います。行が追加/変更されたときに、このルーチンを 1 回実行することをお勧めします。

于 2012-08-03T06:46:42.890 に答える