2018-11-13sql的查询判断

我们在sql中的 case when 里面可以叠加相同的语句,

case when 条件 then case when  条件 end else case when 条件 then 。。。 end


CASE WHEN

-- 判断在特殊岗位是否有设定好的天数

(sp.round_num  IS not NULL || sp.day_num != '')

AND(LEFT(spe.add_time,4)<'${comboBox}' || (LEFT(spe.add_time,4)='${comboBox}' AND CEILING(SUBSTRING(spe.add_time,6,2)/2)<=1))

AND ((spe.del_time IS NULL || spe.del_time = '')||

-- 且结束时间是否包含在所选年度的轮次里面

LEFT(spe.del_time,4)>'${comboBox}' || (LEFT(spe.del_time,4)='${comboBox}' AND CEILING(SUBSTRING(spe.del_time,6,2)/2)>=1))

THEN

CASE WHEN

-- 如果岗位表存在这个轮次

  sp.round_num LIKE '%1%'

THEN

-- 那么值就是数据库里面的,否则就设置为0

sp.day_num ELSE 0 END

-- 如果不是特殊岗位 那么就设置成5天

ELSE 5 END as '应完成天数'

你可能感兴趣的:(2018-11-13sql的查询判断)