当最后3个字符串等于aaa然后做...时,我可以做案例吗?

时间:2014-07-31 18:57:59

标签: sql case

我有一串数据,我想知道如果在某些文本中结束然后从不同的临时表返回值,我是否可以在语句中执行一个案例。是否有可能做到这一点? 即prodwarehouse结束于' 001'然后从表#a else 0结束时拉出数量。      当prodwarehouse以'009'结束时的情况然后从表#b上拉出来的数量#b else 0 end。

表#a和#b具有以下值:productwarehouse - on hand qty

1 个答案:

答案 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...