2017-10-16 13 views
0

さまざまなスペルミスのジェンダー値を持つDWCUSTというテーブルがあります。 無効なGENDERの値をGENDERSPELLINGテーブルの正しい値に置き換えます。フィールドがMaleを言うdwcustテーブルのgender列にして存在する場合別のテーブルのデータに基づいてテーブルを更新します

だから例えば、私はそれがMに変更することにしたいです。

これは男女スペルのテーブルです:

Invalid Value  New_Value 

     MAIL  M 
     WOMAN  F 
     FEM  F 
     FEMALE  F 
     MALE  M 
     GENTLEMAN M 
     MM   M 
     FF   F 
     FEMAIL  F 

は、これは私がこれまで試してみましたアップデートですが、私はエラーを取得しておく:「GS.NEW_VALUE」は無効識別子。

UPDATE (SELECT DW.GENDER 
FROM DWCUST DW, GENDERSPELLING GS 
WHERE DW.GENDER = GS.INVALID_VALUE) 
SET DW.GENDER = GS.NEW_VALUE; 

答えて

0

1つのオプションは、相関副問合せを使用しています。

UPDATE DWCUST t1 
SET GENDER = (SELECT NEW_VALUE FROM GENDERSPELLING t2 
       WHERE t1.GENDER = t2.INVALID_VALUE) 
WHERE GENDER NOT IN ('M', 'F'); 

これはすでにMF(受け入れられる値)ではありません任意の性別のために検索を行うにしようと試みます。誤った値がGENDERSPELLINGテーブルでカバーされない可能性がある場合は、現在の値をそのまま残すようにクエリをわずかに変更することができます。

関連する問題