sql - 将多个列更新为相同的值时如何避免 SQL 中的重复?
问题描述
我需要更新表中的许多行,并且每行需要将多个列设置为相同的值。我正在使用 oracle SQL,但我无法使用 PL/SQL 来完成这项任务。
我目前正在做的一个例子:
update table set
col_1 = 'An example column value',
col_2 = 'An example column value',
col_3 = 'An example column value'
where col_1 = 'original';
这可行,但需要大量繁琐的重复并且很丑陋。有没有办法在不使用 PL/SQL 的情况下减少这种重复?
解决方案
Oracle 没有真正灵活的update
,但它确实允许设置元组。这允许您使用这样的子查询:
update table
set (col1_1, col2_2, col_3) =
(select x.val, x.val, x.val
from (select 'An example column value' as val from dual) x
)
where col_1 = 'original';
推荐阅读
- flask - Flask 从不同驱动器上的多个位置访问视频
- python - 重采样到 periodIndex 并使用初始值
- oop - 如何设计包含翻译集合的类属性?对于模式大师
- google-my-business-api - 检测 Google MyBusiness 已删除的评论
- r - 如何在 R 中的 dplyr 过滤器中包含聚合函数
- c# - Windows 窗体 - 允许用户按字符选择 RichTextBox 中的文本(禁用单词自动选择)
- javascript - Vue当我点击显示密码时,提交按钮有效
- python - 在pandas dframe中选择行,其中给定的输入列表是dframe列中列表的子集
- electron - 安装在 Program Files (x86) 中时,使用 electron-builder 构建的电子应用程序无法加载图像
- javascript - URL验证的通用标准正则表达式?