我有两张桌子“A”和“B”。两者都有一个共同的列“name”,并通过列“id”相互链接。表A中的“name”列是空的,而表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 Developer 中运行查询,它就会冻结,我必须强制关闭它。谁能告诉我查询有什么问题吗?
试试这个:
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,因此这里有以下参考不为空 http://www.techonthenet.com/oracle/isnotnull.php.
这是 SQL Fiddle,您可以使用它:http://sqlfiddle.com/#!4/a5ad0/3 http://sqlfiddle.com/#!4/a5ad0/3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)