0
我正在寫一個sql語句(見下文),它比較了兩個不同的表table1和table2上的兩個序列號。如果序列號存在,那麼我希望table1上的另一列更新爲'是',如果table1中的序列號不存在於table2中,我想用'no'更新。加入2個表,比較列和更新第3列
我當前的sql語句有效完美無缺,並在必要時填寫'是'。我的問題是,當序列號不存在時,不要放置'否',而是更新爲NULL。我的where語句很重要,因爲我只想比較兩個表中日期和安裝匹配的表上的序列號。我不想比較每一行。感謝
UPDATE dbo.table1
SET [Match] = CASE WHEN dbo.table2.[Serial Number] IS NOT NULL
THEN 'yes' ELSE 'no' END
FROM dbo.table1 LEFT OUTER JOIN dbo.table2
ON dbo.table2.[Serial Number] = dbo.table1.[Serial Number]
Where dbo.table1.[Date] = 'JAN11' AND
dbo.table1.[Install] = 'new' AND
dbo.table2.[Date] = 'JAN11' AND
dbo.table2.[Install] = 'new'
@ Baz1nga我把解釋的答案,查看更新的答案 –
非常感謝,並感謝您的解釋也是如此。我發現有時很難調試sql語句,所以這有很大幫助。 – kev670