实战干货
case when 一般用在 select 后面或者where条件的=后面,如:
select case when '${unit}'='单' then order_num else quantity_num
from a
where project = case when '${type}'='T1' then 'P1' else 'P2'
如果type是一个特殊值时,需要使用where条件in逻辑筛选数据,那就会有下面的写法:
where project in (case when '${type}'='ALL' then (
select project from A
) else 'p2')
因为case when 只能返回单行数据,所以这样写会报出单行和多行的错误提示。
干货:
where project in (
select distinct
case when '${type}'='ALL' then project else 'P2'
from A
)