我有一串数据,我想知道如果在某些文本中结束然后从不同的临时表返回值,我是否可以在语句中执行一个案例。是否有可能做到这一点? 即prodwarehouse结束于' 001'然后从表#a else 0结束时拉出数量。 当prodwarehouse以'009'结束时的情况然后从表#b上拉出来的数量#b else 0 end。
表#a和#b具有以下值:productwarehouse - on hand qty
答案 0 :(得分:1)
不了解涉及多少个表或关系,但您可以使用带有子选择的case语句。
select
case when prodwarehouse like '%001' then (select onHandQty from tableA a where yt.id = a.id)
when prodwarehouse like '%009' then (select onHandQty from tableB b where yt.id = b.id)
else 0
end as 'Qty'
from yourTable yt
或者您可以加入表格,这样就不需要进行子选择。
select
case when a.prodwarehouse like '%001' then b.qty
when a.prodwarehouse like '%009' then c.qty
else 0
end as 'Qty'
from tablea a
join table b on...
join table c on...