0

データを追加してフィールドを更新しようとしています。既にデータが含まれている場合は更新しません。それ以外の場合は更新します。

既にデータが含まれている場合は、コンマとスペースの後に単語を追加します。例えば

update myTable 
set  Prefixes = convert(nvarchar(max),Prefixes) + ', abc' 
where MyCol='xyz' and Prefixes not like '%abc%'

接頭辞列が最初に空の場合、「abc」という単語のみが含まれるように、これを機能させようとしています

「、abc」ではありません

これどうやってするの?

4

2 に答える 2

1

必要なようですねCASE

update myTable 
set  Prefixes = 
           case 
               when Prefixes is null or Prefixes = ''
               then 'abc'
               else convert(nvarchar(max),Prefixes) + ', abc' 
            end
where MyCol='xyz' and (Prefixes not like '%abc%' or Prefixes is null)

SQL FiddlewithDemoを参照してください

于 2013-01-30T17:47:26.673 に答える
0

句の場合と同様に、nullフィルタリングする前にプレフィックスの値を確認する必要があります。SQL-デモNOT LIKEWHERE

update myTable 
set  Prefixes = isnull(nullif(rtrim(Prefixes),'') + ', abc','abc')
where MyCol='xyz' and isnull(Prefixes,'') not like ', abc%'
于 2013-01-30T18:18:45.780 に答える