静态值应该放在表中,还是应该创建一个案例状态

时间:2018-01-17 16:45:27

标签: sql-server performance case

我正在编写代码,我可以创建一个包含41行的表并进行连接,或者我可以创建一个case语句

表格看起来像这样:

minValue,MaxValue,Category,Tier; 
876,999,a,5; 
826,875,a,6; 
801,825,b,7; 
776,800,c,8; 

我会做一个看起来像这样的联接

Update results
set answer = tier
from results a
left outer join  lookuptable b on a.value>= b.minValue and a.value <=b.MaxValue
and a.Catagory = b.catagory

如果我做了一个案例陈述,它将会是这样的

Update results
set answer = case cat when a then  
case when value>=876 and value<=999 then 5
case when value>=826 and value<=875 then 6
case when value>=801 and value<=825 then 7
... end
when b then 
case when value>=876 and value<=999 then 7
case when value>=826 and value<=875 then 8
case when value>=801 and value<=825 then 12
... end... end

所以我最终会得到一个非常大的嵌套case语句。结果表最多可包含500,000行。什么是最有效的?

0 个答案:

没有答案