0
我正在使用序列号字段作为查找值的公用字段,根据另一个表中的值更新表。然而,从2个以下的查询中我得到两个不同的结果有人可以解释为什么两个产出不同吗?更新语句不应该更新47200记录?需要更新Oracle声明
UPDATE TBL_SERIAL_NUMBER_MASTER A
SET (A.name) = (SELECT B.name
FROM TBL_DEVICE_LOCALITY B
WHERE A.SERIAL_NUMBER = B.SERIAL_NUMBER AND ROWNUM <=1)
WHERE EXISTS (SELECT 1
FROM TBL_DEVICE_LOCALITY
WHERE SERIAL_NUMBER = A.SERIAL_NUMBER
AND TBL_ODIN_DEVICE_LOCALITY.HOST_NAME IS NOT NULL);
结果int:更新了35311行。
select count(*)
from TBL_SERIAL_NUMBER_MASTER A, TBL_DEVICE_LOCALITY B
WHERE A.SERIAL_NUMBER = B.SERIAL_NUMBER AND B.HOST_NAME IS NOT NULL;
返回:数= 47200
您的第一个查询引用子查询中的表TBL_ODIN_DEVICE_LOCALITY。我认为这是一个错字。 –
是的,这是一个错字 –