Sql文的where中使用case when

问题描述:

Sql文的where中使用case when
有这样一段sql文.
select B.bCol_1,B.bCol_2,C.cCol_1
from TBL_B B left join TBL_C C
on B.bCol_Key = C.cCol_Key
where B.bCol_Time < 'xxxx'
现在需要扩展功能,就是只有当表B.bCol_Flag=0时,where的条件改为C.cCol_Time < 'xxxx',其他的情况保持不变.不知道where里面能不能再用case when或者还有其他的,如果能用的话,怎么个写法.
因为这个是扩展功能,而且这段代码是在Procedure中的,所以不太能用参数和if…else控制来写.
比较急,如果代码通过,我会加满分的.
1个回答 分类:综合 2014-11-11

问题解答:

我来补答
这样就可以了
select B.bCol_1,B.bCol_2,C.cCol_1
from TBL_B B left join TBL_C C
on B.bCol_Key = C.cCol_Key
where (B.bCol_Time < 'xxxx' and B.bCol_Flag0) or ( C.cCol_Time < 'xxxx' and B.bCol_Flag=0)
 
 
展开全文阅读
剩余:2000
下一页:绘图