【问题标题】:Update multiple records with select statement使用 select 语句更新多条记录
【发布时间】:2016-03-30 10:59:26
【问题描述】:

我想知道如何使用 select 语句一起更新多条记录。

我想这样做:

Update table set new_col = (select col1 from tab1, tab2 where tab1.id =tab2.neid)

这里选择子查询返回大约 100 条记录,对于这 100 条记录,我想更新我的 new_col。

有没有办法完成这个任务?

我尝试使用更新选择,但没有成功。

示例:

表包含大约 10 条记录和 3 列。 例如,我想在现有表中再添加一列。

现在我有 4 列。新添加的列应该是从另一个表中获取这 10 条记录的值。

那么我该怎么做呢?

谢谢

【问题讨论】:

  • 请编辑您的问题并提供示例数据和所需结果。你的问题太模棱两可了。
  • @inityk 你已经更新了你的问题,但是你没有向我们提供任何额外的信息来告诉我们你想要做什么。请更新您的问题以在您的表格中提供示例数据以及您希望在更新后看到的输出。 (Here's an example of a question 就是这样做的。)

标签: sql oracle select sql-update


【解决方案1】:

在 Oracle 中,您可以使用相关子查询来执行此操作。您需要一些列来确定要更新哪一行:

Update table t
    set new_col = (select col1
                   from tab1 join
                        tab2 
                        on tab1.id = tab2.neid
                   where tab?.?? = t.??
                  )
    where exists (select 1
                  from tab1 join
                       tab2 
                       on tab1.id = tab2.neid
                  where tab?.?? = t.??
                 );

您的问题没有指定如何识别外部表中与子查询中的每一行匹配的行。因此,???

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 2018-02-18
    • 2020-06-19
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    相关资源
    最近更新 更多