-1
A
回答
1
假設分配「從表中有兩列,ID和SAL,30000行,編寫一個查詢該交換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);
2
UPDATE emp x
SET sal =
(SELECT sal
FROM emp
WHERE id = DECODE (x.id, :id1, :id2, :id1))
WHERE id IN (:id1, :id2)
相關問題
- 1. 如何使用單個查詢更新兩行的交換值
- 2. 在單個更新(Oracle)上交換列值
- 3. 如何交換列表中的單詞。
- 4. 如何交換SQLite列中的值?
- 5. 如何交換更新字段中的值
- 6. 更換新陣列鍵值
- 7. SQL:交換列值
- 8. 我想更新只有單行列值與回滾提交
- 9. 列中的CSV交換值
- 10. 如何複製多列單列更新
- 11. 如何更新laravel中的單個列
- 12. 如何增加更新列的值?
- 13. 如何更新表中的列值?
- 14. 如何更新列表的項目值?
- 15. 更新從單列表中的列1到列2的值替換查詢
- 16. GWT CELLTABLE列的單元值更新
- 17. 無法更新表中的單列值
- 18. 如何用查詢結果更新單個列的值?
- 19. 如何在單個查詢更新多個值的列
- 20. Oracle SQL更新交換號
- 21. 如果新值更高,只更新列
- 22. 如何根據另一列的值更新「職級」列的值?
- 23. 如何交換記錄值?
- 24. 如何交換dataTable行值?
- 25. 如何交換下拉值?
- 26. 如何通知動態數據交換(DDE)的任何更新?
- 27. 更新單列
- 28. 更新列值
- 29. 更新列值
- 30. 更新值列
這是沒有意義的。請更具體一些。 – shadow
只是:'update table_name set id = sal,sal = id;' – krokodilko
你需要做什麼 - 在兩個id之間切換兩個薪水?如果桌子上有30,000個ID,你想切換哪個?工作分配是「我給你兩個身份證,我希望你在這兩個人之間換工資」? – mathguy