【发布时间】:2012-06-07 12:26:55
【问题描述】:
我以前从未使用过 Case,也不确定如何执行此操作,但我们在进行批发更新时遇到了一些问题,因为地址发生了变化,现在数据中没有使用过。我试图将它用作 if 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)
我已经尝试将其包装成一个案例语句,例如:
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 万条记录),它使用的资源目前完全不相关。
谢谢。
【问题讨论】:
标签: tsql sql-update case