更新列中的特定行

Posted

技术标签:

【中文标题】更新列中的特定行【英文标题】:Update specific rows in a column 【发布时间】:2017-08-15 08:26:59 【问题描述】:

我有一列有 82 行(来自 table1),我想用另一个表(table2)中的不同值更新其中的 76 行。避免 6 个特定行(1、10、38、39、46、77)。将这些行保留为空值。

我使用游标保存了 table2 中的所有 76 行

Cursor my_cur
 Is
  Select * from table2

然后我尝试更新我的 table1

Begin
 For x in  my_cur loop
   Update table1
   Set my_col = x.acct_num
   Where rnum not in ('1', '10', '38', '39', '46', '77');
end loop;
End;

但我最终用相同的值更新了这些行(所有 76 行只有 1 个 acct_num)。

我想输入不同的 acct_num 到 76 行,并以与我的 table2 中相同的顺序

我在它们两个中都添加了 rownum 以至少确定要跳过哪些行。任何想法如何做到这一点?谢谢。

【问题讨论】:

【参考方案1】:

在您的更新查询中,由于它是一个 for 循环,因此 table1 循环中 acct_num 的最后一个值将更新为 table2 中的所有行。

table1 和 table2 之间必须有一个公共列才能连接,在 where 条件中使用它。

Begin
 For x in  my_cur loop
   Update table1
   Set my_col = x.acct_num
   Where table1.common_column = x.common_column and
rnum not in ('1', '10', '38', '39', '46', '77');
end loop;
End;

where 子句中的这个附加过滤器可以解决你的查询。

【讨论】:

以上是关于更新列中的特定行的主要内容,如果未能解决你的问题,请参考以下文章

SQL,更新特定行中的列,而不是所有行

如何从 qtreeview 中的父行中获取特定列

选择特定行和列中的特定输入元素

如何根据特定行中的值对 numpy 数组进行排序?

更新列中的特定行

Pandas 用 NaN 值填充列中的单元格,从行中的其他单元格中获取值