Sql server 2008 where子句中带有参数的Case语句
我一直在用这个砸我的头 基本上Sql server 2008 where子句中带有参数的Case语句,sql-server-2008,reporting-services,Sql Server 2008,Reporting Services,我一直在用这个砸我的头 基本上 where.... and PaymentType IN CASE WHEN @PmtType = 'B' THEN ('BizPay','PerPay') WHEN @PmtType = 'Z' THEN ('BizPay') WHEN @PmtType = 'P' THEN ('PerPay') ELSE NULL E
where....
and PaymentType IN CASE WHEN @PmtType = 'B' THEN ('BizPay','PerPay')
WHEN @PmtType = 'Z' THEN ('BizPay')
WHEN @PmtType = 'P' THEN ('PerPay')
ELSE NULL END
这就是我想要的。我试着重新安排这个案例,把它放在括号里,在这里和谷歌,我只是没有让它工作。非常感谢您的帮助。以后谢谢。您可以这样使用
and PaymentType =CASE WHEN @PmtType = 'B' THEN
CASE WHEN PaymentType IN ('BizPay','PerPay') THEN PaymentType ELSE '-1' END
WHEN @PmtType = 'Z' THEN
CASE WHEN PaymentType IN ('BizPay') THEN PaymentType ELSE '-1' END
WHEN @PmtType = 'P' THEN
CASE WHEN PaymentType IN ('PerPay') THEN PaymentType ELSE '-1' END
ELSE NULL END
对任何想知道我的解决方案的人来说
AND (@PmtType = 'B' and PaymentType in ('BizPay','PerPay'))
or (@PmtType = 'Z' and PaymentType in ('BizPay'))
or (@PmtType = 'P' and PaymentType in ('PerPay'))
可能是重复的感谢,我以前读过这个问题,但并不认为它适用于我的情况。在抱怨我提到我已经读过的东西之前,我接受了你的建议,仔细地再读一遍,让它发挥作用,我想我理解了。再次感谢。:)这几乎可以正常工作,但是('BizPay','PerPay')之间的逗号出现语法错误