Sql server 2012 Sql Server where子句中的大小写或if-else
我使用下面的查询,并且在where cause中使用case语句和参数 当report_type='All'时,我需要所有行,不需要选择,但是如果我选择'AR'或'BD',我只需要包含这些相应的语句。然而,当我尝试实现以下逻辑时,它将我和错误抛在了附近,或者不确定我做错了什么。任何帮助都将不胜感激Sql server 2012 Sql Server where子句中的大小写或if-else,sql-server-2012,case,where-clause,Sql Server 2012,Case,Where Clause,我使用下面的查询,并且在where cause中使用case语句和参数 当report_type='All'时,我需要所有行,不需要选择,但是如果我选择'AR'或'BD',我只需要包含这些相应的语句。然而,当我尝试实现以下逻辑时,它将我和错误抛在了附近,或者不确定我做错了什么。任何帮助都将不胜感激 select * from aging agedet where ( 'All' = {?Report_Type} OR ( CASE WHEN {?Report_type} = 'A
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 )
)
从账龄数据中选择*,其中
(
'All'={?报告类型}
或
(
案例
当{?Report_type}='AR'时
(agedet.bkt_类型_ha_c 5
及
agedet.extern\u ar\u flag\u yn'Y'
及
agedet.bad_debt_flag_yn'Y')
案例
当{?Report_type}='Bd'时,则
(agedet.bkt_类型_ha_c=5
及
agedet.extern\u ar\u flag\u yn='Y'
及
agedet.bad_debt_flag_yn='Y')
(完)
)