在 SQL (Oracle) 中使用条件交换列

Posted

技术标签:

【中文标题】在 SQL (Oracle) 中使用条件交换列【英文标题】:Swap columns with a condition in SQL (Oracle) 【发布时间】:2022-01-01 15:12:20 【问题描述】:

我有一个包含两列的表格 - xy。在我的输出表中,x 应始终小于 y

如何兑换?我尝试了更新,但它不起作用并引发运行时错误。有人能给出正确的语法吗?

Update table t1 set x = (case when x<y then x else y end),
                set y = (case when x<y then y else x end)

【问题讨论】:

【参考方案1】:

使用WHERE 子句仅更新实际需要更新的行:

UPDATE tablename
SET x = y,
    y = x
WHERE x > y;

【讨论】:

【参考方案2】:

您的语法错误。 UPDATE 语句中不应有“TABLE”。 你有两次SET,只需要一次

Update t1 set x = (case when x<y then x else y end),
 y = (case when x<y then y else x end)

【讨论】:

以上是关于在 SQL (Oracle) 中使用条件交换列的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别