插入 if 条件以防万一



在我的sql脚本中,我有这个:

insert into @res
    select
    case
            when x = 'tblDoll' then (...)
            when x = 'tblCar' then (...)
            when x = 'tblRocket' then
                if rel_table_id = @old_id
                    (select x.price from tableInDb x where x.id = rel_table.toy_id)
    end
        from rel_table
        where my_toy_id = @toy_id

@old_id是一个输入参数。

但是 if 中的某些内容返回语法错误。rel_table_id是rel_table的 ID。如何在那里放置 if 条件?

JOIN两个表,具有更多嵌套CASE表达式,如下所示:

INSERT INTO @res
SELECT 
  CASE
    WHEN x = 'tblDoll'               THEN  (...)
    WHEN x = 'tblCar'                THEN  (...)
    WHEN x = 'tblRocket'             THEN  
      CASE WHEN rel_table_id = @old_id THEN  x.price END
  END
FROM rel_table t1
INNER JOIN tableInDb x ON x.id = rel_table.toy_id

最新更新