1

在我的 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条件?

4

1 回答 1

1

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
于 2012-12-10T14:32:01.940 回答