我從來沒有使用過Case,但不知道如何做到這一點,但是由於地址發生變化,我們在執行批量更新時遇到了一些問題,這些地址正在進入未使用的數據至。我試圖用它作爲一個如果然後聲明,但我相信我做錯了。當字段爲空或空時,我需要更新地址。一次更新多個列的情況
UPDATE defendants_ALL_Fixed
SET tiffAdd = tiffAdds.Add1, tiffZip = tiffAdds.Zip, tiffCity = tiffAdds.City, tiffState = tiffAdds.State
FROM defendants_ALL_Fixed INNER JOIN
tiffAdds ON defendants_ALL_Fixed.tiff = tiffAdds.Tiff
WHERE (defendants_ALL_Fixed.tiff = tiffAdds.Tiff)
我已經試過包裝到這一點的情況下的語句,如:
SELECT
a.tiffAdd
, CASE WHEN a.tiffAdd = '' THEN
UPDATE defendants_ALL_Fixed
SET tiffAdd = tiffAdds.Add1, tiffZip = tiffAdds.Zip, tiffCity = tiffAdds.City, tiffState = tiffAdds.State
FROM defendants_ALL_Fixed INNER JOIN
tiffAdds ON defendants_ALL_Fixed.tiff = tiffAdds.Tiff
WHERE (defendants_ALL_Fixed.tiff = tiffAdds.Tiff)
END
FROM defendants_ALL_Fixed a
,沒有工作,我明白爲什麼它不工作,但不知道在哪裏可以從這裏的任何幫助去會很好。我們每月只用一次來更新數據(大約150萬條記錄),而且它所使用的資源在這一點上完全不相關。
謝謝。
它只需要更新,當tiffAdd爲空或空,這就是爲什麼我試圖包裝它,而不是爲每個寫一個case語句,但我只是將每一行都改爲tiffAdd。謝謝! – korrowan
@korrowan請參閱我的答案編輯1,如果您只想更新tiffAdd ='',您甚至不需要使用CASE,只需在更新語句中添加WHERE子句即可。 – HeavenCore
忽略WHERE(defendants_ALL_Fixed.tiff = tiffAdds.Tiff)的含義是什麼?這是不是因爲INNER JOIN? – korrowan