id sal
101 5000
102 9000
iは2列、IDおよびSal、30,000行を持つテーブルから」割り当てをされると仮定すると、は、どのようにクエリを記述、
id sal
101 9000
102 5000
id sal
101 5000
102 9000
iは2列、IDおよびSal、30,000行を持つテーブルから」割り当てをされると仮定すると、は、どのようにクエリを記述、
id sal
101 9000
102 5000
などの更新sal列をしたい単一の列の更新値を交換しますそれはこのような何かが動作するはずです、ID = 101とid = 102" との間の給与を入れ替え:
update zz set sal = case id when 101 then (select sal from zz where id = 102)
when 102 then (select sal from zz where id = 101)
end
where id in (101, 102);
編集:この質問に対する彼の答えにMottorによって示されるように、ステートメントCA次のように、より簡潔に書かれています。 (私はDECODE上CASE式を使用することを好むことに注意してください - 私はそれを読んで維持する方が簡単だと思う。)
update zz x set sal = (select sal from zz where id = case x.id when 101 then 102
when 102 then 101 end)
where id in (101, 102);
UPDATE emp x
SET sal =
(SELECT sal
FROM emp
WHERE id = DECODE (x.id, :id1, :id2, :id1))
WHERE id IN (:id1, :id2)
それは意味がありません。より具体的にしてください。 – shadow
ちょうど: 'update table_name set id = sal、sal = id;' – krokodilko
あなたは何をする必要がありますか?2つのidの間で2つの給与を切り替えるのですか?テーブルに30,000のIDがある場合、どのテーブルに切り替えたいのですか?課題は "私はあなたに二つのIDを与えます、あなたはそれらの二つの間の給料を切り替えるといいですか?" – mathguy