sql - 在 Oracle 中交换列值

标签 sql oracle logic

我正在解决其中一个难题,并遇到了使用 DML 查询交换列值的问题:

SELECT * FROM TEMP_TABLE;
ID1, ID2
--------
20, 15
20, 15
20, 15

解决方案是数学计算:
UPDATE TEMP_TABLE SET ID1=ID1+ID2;
UPDATE TEMP_TABLE SET ID2=ID1-ID2;
UPDATE TEMP_TABLE SET ID1=ID1-ID2;

现在,我想弄清楚这是否可以应用于字符串,请提出建议。
SELECT * FROM TEMP_TABLE_NEW;
ID1, ID2
--------
ABC, XYZ
ABC, XYZ
ABC, XYZ

最佳答案

没有必要有三个更新语句,一个就足够了:

UPDATE temp_table_new 
SET    id1 = id2, 
       id2 = id1; 

关于sql - 在 Oracle 中交换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21827804/

相关文章:

database - 从 Windows 7 64 位连接到 32 位 Oracle 数据库

java - java中基于条件的逻辑编程

clojure - 理解 Mini-Kanren 的执行模型

php - 使用数据库而不是配置文件来存储配置

sql - SQL 文件的 TypeScript 生成

sql - 使用 SQL 查询裁剪二进制列

mysql - 需要一个 SQL 查询来查找连接两个表但比较第二个表中的多行的结果

oracle - 我需要在 Perl 容器中打开哪个端口来连接 oracle db 容器

sql - 修改 XML 节点值 - Oracle 12c 的 UpdateXML 等价物

c# - 计算物体摩擦力时不准确