gpt4 book ai didi

oracle - 如何使用其他表中的数据一次更新具有空值的表?

转载 作者:行者123 更新时间:2023-12-04 07:01:24 24 4
gpt4 key购买 nike

我有 2 张 table - A 和 B 。表 A 有两列,pkey (主键)和 col1 .表 B 也有两列,pr_key (主键但不是外键)和 column1 .两个表都有 4 行。表 B 在 column1 中没有值,而表 A 有 column1所有 4 行的值。所以我的数据看起来像这样

Table A 
pkey col1
A 10
B 20
C 30
D 40

Table B
pr_key column1
A null
B null
C null
D null

我想更新表 B 以设置 column1每行的值等于 column1单个 DML 语句中表 A 中等效行的值。

最佳答案

应该是这样的(取决于你使用的 SQL 实现,但总的来说,以下是相当标准的。特别是应该在 MS-SQL 和 MySQL 中工作。

INSERT INTO tblB (pr_key, column1)
SELECT pkey, col1
FROM tblA
-- WHERE some condition (if you don't want 100% of A to be copied)

关于 tblB 的 pr_key 的性质,问题有点不清楚,如果由于某种原因这是该表的默认/自动递增键,则可以从列列表(括号中)和 SELECT 中省略它接下来。以这种方式,在插入每个新行时,将生成一个新值。

编辑 :看来 OP 实际上想用 A 中的值更新表 B。
这个语法应该是这样的
UPDATE tblB 
SET Column1 = A.Col1
FROM tblA AS A
JOIN tblB AS B ON B.pr_key = A.pkey

关于oracle - 如何使用其他表中的数据一次更新具有空值的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1781419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com