我有几个硬编码的案例陈述(case when ID in ('1','2', etc) then X)
。有没有办法将其显示为table
,其中ID值1,2对应于描述X?
然后制作一个参考表。
否则我需要手动将这些值插入该表。所以最终,我想在我的查询中使用与该表的连接而不是case语句。
答案 0 :(得分: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;
您还可以将值存储在临时表,全局临时表或永久表中。
答案 1 :(得分: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
答案 2 :(得分:0)
通常快速修复是使用excel来生成使用某些智能公式的语句时的情况。我已经将它用于了一些巨大的代码。