複数のハードコードケース文(case when ID in ('1','2', etc) then X)
があります。 table
と表示する方法はありますか?ここで、ID値1,2は説明Xに対応していますか?テーブルへのcase文の値
参照表を作成します。
Elseこれらの値をその表に手動で挿入する必要があります。最終的には、caseステートメントではなくクエリでそのテーブルの結合を使用したいと考えています。
複数のハードコードケース文(case when ID in ('1','2', etc) then X)
があります。 table
と表示する方法はありますか?ここで、ID値1,2は説明Xに対応していますか?テーブルへのcase文の値
参照表を作成します。
Elseこれらの値をその表に手動で挿入する必要があります。最終的には、caseステートメントではなくクエリでそのテーブルの結合を使用したいと考えています。
使用この方法、それはあなたに
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
に合っている場合のように、クエリ内の参照表を作成することができます:グローバル一時、あなたはまた、一時テーブル内の値を格納することができます
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;
テーブル、またはパーマネントテーブル。
通常、クイックフィックスは、スマートな数式を使用してステートメントを作成する場合にExcelを使用してケースを生成することです。私はいくつかの巨大なコードのためにそれを使用しました。
[table value constructor](https://docs.microsoft.com/en-us/sql/t-sql/queries/table-value-constructor-transact-sql)を使用してください。 –
はい、id、description、use case文の列を持つテーブルを作成して、2番目の列に行を挿入することができます –
これを達成するための「スマートな」方法があるかと思います。すべてのIDを手動で追加しなければならない場合や、たくさん書き込んだり変更したりする必要がある場合は、マニュアルですべての値を挿入する必要はありません – Proffesore