2017-06-16 1 views
0

インポートされたデータの一部をクリーンアップする必要があります。私が使用する適切なコードにいくつかのエントリを変更します。私はそれが働いているが、更新/セットのリストよりもクリーンな方法はありますか?SQL Server - 複数のデータの更新/修正

update List 
    SET STCode = REPLACE(STCode, 'Georgia','GEO') 
update List 
    SET STCode = REPLACE(STCode, 'Louisiana','LOU') 
etc... 
+2

翻訳テーブルを作成してテーブルに追加して更新し、更新ステートメントが1つだけ必要です。 –

+0

特定の順序で行う必要がある置換に注意してください。 「ウェストバージニア州」は混乱を避けるため、おそらく「バージニア州」よりも前に扱われるべきである。 – HABO

答えて

1

は溶液で

update List 
    set STCode = REPLACE(STCode, replacement.bad, replacement.good) 
    from List l 
    join (
     values 
     ('Georgia','GEO') 
     ,('Louisiana','LOU') 
    ) replacement(bad, good) 
     on l.STCode like '%' + replacement.bad + '%' 
     ; 
1

は、労働組合とのtransalationテーブルを使用することができ、交換するために多くても1つの値でSTCode店舗(「ジョージアルイジアナ」のようなノーもの)ルックアップテーブルを提供参加

UPDATE T1 
    SET T1.STCode = T2.code 
    FROM List AS T1 
    INNER JOIN (
     select 'Georgia' name ,'GEO' code 
     union 
     select 'Louisiana','LOU' 
) T2 on .T1.STCode = T2.name 
関連する問題