假設我有值的表A更新記錄:從另一個表
表A:
Data1 Data2 Data3
--------------------
Val2 null val3
null ValB Val3
和表B:
Data1 Data2
---------------
Value1 Value2
現在我要更新第二表1的行與表B的值1通過用於VAL3通過檢查在表B的值,其中表A的VAL2等於表B的值1。
我曾試圖更新它使用子查詢像
update TableA
set Data1=
(Select distinct(B.Data1)
from TableB B,TableA A
where A.Data1=B.Data2 and B.Data2 is null)
where Data3=Val3
查詢被成功執行,但該記錄不會得到更新。 的表A由具有對於該組 即特定的記錄也可以是 <Data2,Data3> or <null,Data3>
(數據3不能爲空)
任何形式的幫助將不勝感激。
TIA,
問候,
阿布舍克
注意,DISTINCT是** **沒有的功能。編寫'DISTINCT(col)'與'DISTINCT col'完全相同。它僅適用於括號內的列名是合法的。 – 2011-04-28 14:10:15
'其中A.Data1 = B.Data2和B.Data2是null' - 請檢查。此where子句不能返回true。 – 2011-04-28 14:18:14
修復您的示例表格,以便我們能夠理解您所說的內容。你說「TABLEA的VAL2等於表B的值1」,但條件是'A.Data1 = B.Data2'(無列數據2值1)。明確而明確地提出問題,你將成爲解決方案的一半。 – angus 2011-04-28 14:18:44