0

给出下表定义

我有一个这样写的查询:

select id,  
(  
   case   
      when partial >= 2 and full >=2  
      then sum(partial+full)  
      when partial >=2   
      then partial  
      when full >= 2  
      then full  
      else 0 
   end  
) counts
from Foo

为了确保内部 when 子句,我必须做的最少检查次数是多少:

partial>=2并且full >=2 不会被调用两次。当/then 语法将所有内容视为 else ifs 而不仅仅是直接 ifs 时,情况是否如此?

4

1 回答 1

1

你可以做

select id,  
(  
   case when partial >= 2 then partial else 0 end + 
   case when full >= 2 then full else 0 end  
) counts
from Foo

示例SQL FIDDLE

于 2013-01-11T20:58:22.183 回答