2017-06-20 1 views
0

複数のハードコードケース文(case when ID in ('1','2', etc) then X)があります。 tableと表示する方法はありますか?ここで、ID値1,2は説明Xに対応していますか?テーブルへのcase文の値

参照表を作成します。

Elseこれらの値をその表に手動で挿入する必要があります。最終的には、caseステートメントではなくクエリでそのテーブルの結合を使用したいと考えています。

+0

[table value constructor](https://docs.microsoft.com/en-us/sql/t-sql/queries/table-value-constructor-transact-sql)を使用してください。 –

+0

はい、id、description、use case文の列を持つテーブルを作成して、2番目の列に行を挿入することができます –

+0

これを達成するための「スマートな」方法があるかと思います。すべてのIDを手動で追加しなければならない場合や、たくさん書き込んだり変更したりする必要がある場合は、マニュアルですべての値を挿入する必要はありません – Proffesore

答えて

0

使用この方法、それはあなたに

create table #temp 
(id int, description Varchar(55)) 
insert into #temp (id) 
values (1); 
insert into #temp (id) 
values (2); 
insert into #temp (id) 
values (1); 
insert into #temp (id) 
values (3); 

update #temp 
set description = 'first' where id in (1,2) 
; 
update #temp 
set description = 'Second' where id = 3 

select * from #temp 

drop table #temp 
1

に合っている場合のように、クエリ内の参照表を作成することができます:グローバル一時、あなたはまた、一時テーブル内の値を格納することができます

with ref as (
     select v.id, v.val 
     from (values ('1', 'x'), 
        ('2', 'x'), 
        . . . 
      ) v(id, val) 
    ) 
select . . . 
from t join 
    ref 
    on t.id = ref.id; 

テーブル、またはパーマネントテーブル。

0

通常、クイックフィックスは、スマートな数式を使用してステートメントを作成する場合にExcelを使用してケースを生成することです。私はいくつかの巨大なコードのためにそれを使用しました。