UPDATE
TABLE1 a,
TABLE2 b
SET
a.COL1 = 'VALUE'
WHERE
a.FK = b.PK
AND b.COL2 IN ('A subquery')
如果我使用此更新語句,並且IN子句中的子查詢未返回任何行,則會出現錯誤。我如何避免這種情況? (Oracle 10g中)使用in子句更新表錯誤
UPDATE
TABLE1 a,
TABLE2 b
SET
a.COL1 = 'VALUE'
WHERE
a.FK = b.PK
AND b.COL2 IN ('A subquery')
如果我使用此更新語句,並且IN子句中的子查詢未返回任何行,則會出現錯誤。我如何避免這種情況? (Oracle 10g中)使用in子句更新表錯誤
你可能可以重寫這一個EXISTS查詢,這取決於你的子查詢的具體細節:
UPDATE TABLE1 a, TABLE2 b SET a.COL1 = 'VALUE'
WHERE a.FK = b.PK AND EXISTS (select 1 from OTHERTABLE O where B.COL2=O.COL2)
UPDATE
TABLE1 a
SET
a.COL1 = 'VALUE'
WHERE
a.FK IN (SELECT b.PK FROM b WHERE b.COL2 in ....)
是在引號中的子查詢?
UPDATE
TABLE1 a,
TABLE2 b
SET
a.COL1 = value
WHERE
a.FK = b.PK
AND b.COL2 IN (
SELECT col2
FROM ...
WHERE ...
)
不,它不是,得到我的答案,並感謝您的答覆 – 2013-02-28 15:48:06
不要忘了'a.FK = b.PK'這裏 - 這已被添加到您的子查詢 – Trinimon 2013-02-27 18:17:47
我認爲這個問題是暗示將''A subquery''實際上是一個'SELECT'聲明。 – egrunin 2013-02-27 18:20:16