case或者if where子句在Sql Server中

时间:2016-10-07 10:27:41

标签: sql-server-2012 case where-clause

我使用以下查询,并且我在parsts

的原因中使用case语句

当report_type ='全'时,我需要所有行,并且不需要选择,但是如果我选择'AR'或'BD',我只需要包含那些相应的语句。然而,当我尝试实现以下逻辑时,它会让我和错误接近或者不确定我在哪里做错了。任何帮助将不胜感激。

select * from aging agedet where

( 
 'All' = {?Report_Type} 
 OR 
( 
CASE 
WHEN {?Report_type} = 'AR' THEN 
  (agedet.bkt_type_ha_c <> 5 
  AND 
  agedet.extern_ar_flag_yn <> 'Y' 
  AND 
  agedet.bad_debt_flag_yn <> 'Y') 
  CASE 
  WHEN {?Report_type} = 'Bd' THEN 
    (agedet.bkt_type_ha_c = 5 
    AND 
    agedet.extern_ar_flag_yn = 'Y' 
    AND 
    agedet.bad_debt_flag_yn = 'Y') 
  END ) 
) 

0 个答案:

没有答案