sql - 通过另一表中的列更新一个表中的列

标签 sql oracle oracle10g sql-update tablecolumn

我有 2 个表“A”和“B”。两者都有一个共同的列“名称”,并通过列“id”相互链接。表 A 中的“名称”列是空的,而表 B 中有数据。我的任务是用相应的 id 填充从表 B 到表 A 的该列中的所有数据。

我正在使用以下查询:

UPDATE A
SET A.name = (SELECT B.name from B WHERE A.id = B.id)
WHERE EXISTS
(SELECT B.name from B)

一旦我在 SQL 开发人员中运行查询,它就会卡住,我必须强制关闭它。谁能告诉我查询有什么问题?

最佳答案

试试这个:

UPDATE A
SET A.name = (SELECT B.name FROM B WHERE B.id = A.id AND B.name IS NOT NULL)
WHERE a.name IS NULL;

由于您使用的是 Oracle,这里是 IS NOT NULL 的引用.

这是 SQL Fiddle,您可以使用它:http://sqlfiddle.com/#!4/a5ad0/3

关于sql - 通过另一表中的列更新一个表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267329/

相关文章:

Oracle SQL Developer SQL 工作表未打开

sql - F# 中的插值字符串

oracle - 删除 SYS 和 SYSTEM 帐户,好主意吗?

sql - 将 Oracle 日期算法转换为 PostgreSQL

sql - 获取日期差为一的行

sql - Oracle to_date 季度格式函数

mysql - 在 SQL 查询中设置日期格式

mysql - #1064 MySQL 错误。带有 MRG_MYISAM 引擎的 utf8_general_ci

sql - 使用 tSQL 计算多个表中的行数

oracle - 将列标题删除到输出文本文件中