2016-12-29 13 views
-1

1つのクエリで行1の列 'first name'と行2の列 'dept_id'を更新したいと思っています。それはできますか? **のものが私が更新したいものです。1つのクエリで異なる行の異なる列を更新する

last_name  first_name  dept_id 
jerry   tom   **50** 
snow   **black**   20 


UPDATE EMP2_5 
SET dept_id = '50' where last_name = 'jerry' 
UPDATE EMP2_5 
SET first_name = 'black' where last_name = 'snow' 

答えて

1

あなたは、各行の一意の識別子を持っていた場合、それが役立つだろうが、あなた、単一のクエリでそれを行うことができます。

update t 
    set first_name = (case when last_name = 'snow' then 'black' else first_name end), 
     dept_id = (case when last_name = 'jerry' then 50 else dept_id end) 
    where last_name in ('jerry', 'snow'); 

commit; 

しかし、2つの別々のupdate sがはるかに簡単です、私は思う:

update t 
    set first_name = 'black' 
    where last_name = 'snow'; 

update t 
    set dept_id = 50 
    where last_name = 'jerry'; 

commit; 
+0

は、単一のクエリ – Jane

+0

@gordonのキーワードエラーが行方不明になっている与えられたデータについて、あなたは任意の列を使用することができますあなたは最初のケースで 'end'を逃した –

+0

こんにちは、それは働く、ありがとう – Jane

関連する問題