Oracle Update具有相同值的多个列

时间:2015-09-08 10:06:19

标签: oracle oracle11g sql-update

假设我创建了一个表 -

Create table t1 (aa varchar2(5),bb varchar2(5),cc varchar2(5));

在其中插入值 -

insert into T1 values ('a','b','c');
commit;

现在在一个场景中,如果我想更新具有相同值的所有列,那么我正在这样做 -

UPDATE T1 SET AA='x',BB='x',CC='x';

有没有其他方法可以实现此更新任务,实时考虑可能有相当多的列,并且所有列都必须一次更新相同的值?

  

我正在使用Oracle 11.2.0.1.0 - 64位生产

注意:通常情况下,所有列的更新值都相同。但是,例如,考虑一个学校数据库和一个好学生在所有科目中得分10/10分。 :-)

感谢。

2 个答案:

答案 0 :(得分:3)

纯粹的 SQL 无法做到这一点。您必须在UPDATE语句中明确列出所有

并且,相信我使用优秀的文本编辑器并不困难。使用元数据可以在几秒钟内获得列名列表,您只需按照语法准备SQL语句。

如果您真的想动态,那么您需要在 PL / SQL 和(ab)使用EXECUTE IMMEDIATE中执行此操作。我个人不会建议它,除非你只是为了学习目的而做。

答案 1 :(得分:0)

你可以试试这个:

UPDATE T1 SET AA='x',BB=AA,CC=AA;