Tsql 更新用例并从不同的表中选择

Tsql 更新用例并从不同的表中选择,tsql,Tsql,我正在尝试执行SQL更新,其中我希望根据第二个表中的值设置要更新的列的值。下面的脚本显示了我正在尝试做的事情,但到目前为止我还没有找到正确的语法 update sometable set name = case when (select newid from lookuptable where oldid = name) <> null then newid else name end 不需要合并或外部联接,因为您只对更新匹配的行感兴趣 此外,在将值与nul

我正在尝试执行SQL更新,其中我希望根据第二个表中的值设置要更新的列的值。下面的脚本显示了我正在尝试做的事情,但到目前为止我还没有找到正确的语法

 update sometable set name = 
  case
   when (select newid from lookuptable where oldid = name) <> null then newid
   else name
  end
不需要合并或外部联接,因为您只对更新匹配的行感兴趣

此外,在将值与null进行比较时,应始终使用X为null或X不为null,而不是X=null或X为null,因为对于null值,等式和不等式运算符总是返回false

UPDATE T
SET
  T.name = L.newid
FROM sometable T
INNER JOIN lookuptable L
  ON L.oldid = T.name