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

JOINCASE次のようなネストされた式を持つ2つのテーブル:

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 に答える