在insert和update语句中使用if/else

Kam*_*mil 4 sql t-sql sql-server sql-server-2008

我有一个具有可空字段的临时表(在SQL SERVER 2008中).
我想将登台表中的记录插入或更新到主表.
在此期间,我想要进行比较

Update main
set main.field1 = (
if(staging.field1 isnull)
    then ---- 
else if(staging.field2 isnull)
    then ---- 
else
    then
)
Run Code Online (Sandbox Code Playgroud)

如何在插入和更新语句中嵌入上述条件?

Yuc*_*uck 10

(等)的等价物是使用CASE表达式:

UPDATE main
SET main.field1 =
  CASE
    WHEN staging.field1 IS NULL
      THEN --
    WHEN staging.field2 IS NULL
      THEN --
    ELSE --
  END;
Run Code Online (Sandbox Code Playgroud)