如果条件允许,请插入

时间:2012-12-10 14:26:25

标签: sql sql-server tsql syntax

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

1 个答案:

答案 0 :(得分: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
相关问题