代码之家  ›  专栏  ›  技术社区  ›  sipsorcery

使用case更新并从不同的表中选择

  •  1
  • sipsorcery  · 技术社区  · 14 年前

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

     update sometable set name = 
      case
       when (select newid from lookuptable where oldid = name) <> null then newid
       else name
      end
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Bennor McCarthy    14 年前
    UPDATE T
    SET
      T.name = L.newid
    FROM sometable T
    INNER JOIN lookuptable L
      ON L.oldid = T.name
    

    X IS NULL X IS NOT NULL X = NULL X <> NULL