sql - 如何在同一个表中的角色之间交换值
问题描述
可以说我有桌子:
ID ROLE NAME TITLE
-- ---- ---- -----
10 DEF John Manager
11 UPD Sam Engineer
12 DEF Jill Lead
13 UPD Ray Engneer
我需要交换值并得到结果:
ID ROLE NAME TITLE
-- ---- ---- -----
10 DEF Sam Engineer
11 UPD John Manager
12 DEF Ray Engineer
13 UPD Jill Lead
如何使用 Oracle 11g 完成此技巧 谢谢。
解决方案
UPDATE the_table dst
FROM the_table src
SET dst.name = src.name
, dst.title = src.title
WHERE dst.id IN (10,11)
AND src.id IN (10,11)
AND src.id <> dst.id
;
推荐阅读
- c# - 如何在 .netCore 中使用 IConfigurationSectio.Get 映射属性名称?
- html - 字体超过字体奇怪的边框
- excel - 将内容剪切到下一行,保持范围内的其他内容
- ios - 如何在swift4中的单个api调用中将图像和docx文件上传到服务器
- reactjs - ReactJs 中是否有任何解决方案可以帮助我更改我将动态访问的链接的标题栏?
- python-3.x - 通过python psycopg的postgres IN子句
- sparql - RDF language tag with gender declension
- jquery - 如何使用 JQuery 3.3.1 设置元素 CSS 比例高度
- sparql - SPARQL 查询获取资源的属性
- r - 在循环中运行的完全相同的 gtrendsR::gtrends() 调用的结果不一致