2

テーブル プロファイルにデータ フィールド Education があるとします。ここで、以前の教育が 'BA' であった Education='01' を更新したいとします。同様に、教育が 'MD' であった Education='02' を更新します。

だから私はこのようなこのタスクを行うことができます

update profile set education='01' where education='BA';
update profile set education='02' where education='MD';

私の質問は、このタスクを次のような1つのコマンドで実行できるかということです

   update profile set education='01' where education='BA' and set education='02' where education='MD';

この構文は間違っています。これが可能で、どのように行うことができるか教えてください。それが不可能な場合は、それについてもお知らせください...

4

1 に答える 1

5

CASE句でステートメントを使用できますが、列を現在の値に設定SETするケースを含めるように注意してください。そうしないと、2 つのケースに一致しない行が に設定されます。ELSENULL

UPDATE profile
SET education = 
  CASE
    WHEN education = 'BA' THEN '01'
    WHEN education = 'MD' THEN '02'
    /* MUST include an ELSE case to set to current value, 
       otherwise the non-matching will be NULLed! */
    ELSE education
  END
于 2012-09-16T13:39:45.080 に答える