Oracle:在更新一个字段时复制行

发布于 2024-09-06 18:49:21 字数 462 浏览 2 评论 0原文

请注意:我正在问我想要回答的问题。我知道这个问题意味着数据库设置得不好。因此,我将否决任何建议更改表格设置方式的答案。

我需要复制一堆行,同时更改一个值。

name   col1 col2
dave   a    nil
sue    b    nil
sam    c    5

需要变为:

name   col1 col2
dave   a    nil
dave   a    a
sue    b    nil
sue    b    a
same   c    5

对于此表中 col2 为 null 的所有条目,IE 在表中创建一个新条目,其中 namecol1 为已复制,col2a

Please note: I am asking the question I want answered. I know this question means the database is set up poorly. So I will vote down any answers that suggest changing the way the table is set up.

I need to duplicate a bunch of rows, while changing one value.

name   col1 col2
dave   a    nil
sue    b    nil
sam    c    5

needs to become:

name   col1 col2
dave   a    nil
dave   a    a
sue    b    nil
sue    b    a
same   c    5

IE for all entries in this table where col2 is null, create a new entry in the table where name and col1 are the copied, and col2 is a.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

美人迟暮 2024-09-13 18:49:21

使用:

INSERT INTO table
  (name, col1, col2)
SELECT t.name, t.col1, 'a'
  FROM TABLE t
 WHERE t.col2 IS NULL

假设 namecol1 列都不是主键,或者两者都没有唯一约束。

Use:

INSERT INTO table
  (name, col1, col2)
SELECT t.name, t.col1, 'a'
  FROM TABLE t
 WHERE t.col2 IS NULL

That's assuming neither the name or col1 columns are a primary key or have a unique constraint on either.

转身泪倾城 2024-09-13 18:49:21

这能行吗?

INSERT INTO yourtable
       (SELECT name, col1, 'a'
          FROM yourtable 
         WHERE col2 is NULL);

Will this do it?

INSERT INTO yourtable
       (SELECT name, col1, 'a'
          FROM yourtable 
         WHERE col2 is NULL);
静若繁花 2024-09-13 18:49:21

如果列数很大,可以将所需的数据复制到临时表中,根据需要更改临时表中的数据,然后将临时表的内容复制回原始表,然后删除临时表。

If the number of columns is large, you could copy the data you want into a temporary table, alter the data in the temporary table as you wanted, then copy the contents of the temporary table back into the original, and delete the temporary table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文