sql - 如何在 SQL 中混合交换值?
问题描述
我在 python 3 中有一个数据框,从数据库中获取,如下所示:
col_A col_B
0 Mas34 10
1 Mer21 32
2 Mas$34 10
col_A 是字符串类型(PRIMARY KEY 也是),col_B 是 int 类型。我想找到一个允许我交换这些值的 SQL 查询,得到如下结果:
col_A col_B
0 Mer21 32
1 Mas34 10
2 Mer$21 32
如果第 2 行不存在,则查询将如下所示:
UPDATE table_name
SET col_A =
(case when col_A = 'Mas34' then 'Mer21' else 'Mas34' end),
SET col_B =
(case when col_A = 10 then 32 else 10 end)
WHERE id_muestra in ('Mas34', 'Mer21')
但是,我不知道是否可以通过简单的查询来做我想做的事情,或者需要更多以前的 python 代码。
非常感谢您提前!
解决方案
这回答了问题的原始版本。
这个怎么样?
update t
set col_B = (case when col_B = 1 then 2 else 1 end);
或者,更简单地说:
update t
set col_B = 2 - col_B;
推荐阅读
- node.js - Mongoose.aggregate(pipeline) 使用 $unwind、$lookup、$group 链接多个集合
- angular - 遍历打字稿中的地图对象列表
- java - 为什么文件中的数组对象在 Java 中有 NumberFormatException?
- java - @RequestMapping 找不到 Jsp 页面
- node.js - 节点 js 应用引擎 github 触发器构建未发布到开发?
- html - 如何获取 HTML 中的字体大小?
- flutter - 如何将文件转换回资产
- html - 通过 Bootstrap Nav Pill 实现 CSS3 按钮擦除效果
- javascript - 使用 javascript 切换 CSS 隐藏表格行
- ruby-on-rails - Ruby on Rails RSpec 测试模型以仅允许数据库中的一条记录