1

私のテーブルには5つの列があります。私はしたいと思います

UPDATE Column5='TEACHER' IF Column2='Y' 
AND 
UPDATE Column5='STUDENT' IF Column3='Y' 

これを1つのステートメントで実行できますか?

4

1 に答える 1

5

おそらくCASEステートメントを使用できます。私の推測では、あなたはこのようなものが欲しいです

UPDATE table_name
   SET column5 = (CASE WHEN column2 = 'Y'
                       THEN 'TEACHER'
                       WHEN column3 = 'Y'
                       THEN 'STUDENT'
                       ELSE null
                   END)
 WHERE column2 = 'Y'
    OR column3 = 'Y'

どちらの条件も満たさない行を更新したくないと思います。すべての行を更新する場合は、句を削除し、どちらの条件も満たさない行WHEREのデフォルト値 ( の ) を調整する必要がありますELSECASE

于 2012-08-30T01:07:01.780 に答える