case语句值到表

时间:2017-06-20 10:34:17

标签: sql sql-server tsql

我有几个硬编码的案例陈述(case when ID in ('1','2', etc) then X)。有没有办法将其显示为table,其中ID值1,2对应于描述X?

然后制作一个参考表。

否则我需要手动将这些值插入该表。所以最终,我想在我的查询中使用与该表的连接而不是case语句。

3 个答案:

答案 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来生成使用某些智能公式的语句时的情况。我已经将它用于了一些巨大的代码。