简体   繁体   English

where子句中的用例语句

[英]use case statement in where clause

I try to use case statement in where clause in sql server and get the error message. 我尝试在SQL Server的where子句中使用case语句,并获取错误消息。

WHERE (PRCA.EDLType = 'E')
AND 
(
 NOT 
 (
  PRCA.EDLCode IN
  (
   SELECT EarnCode
   FROM dbo.udECforUnionRpt
   WHERE (EDL = 'E')
  )
 )
) 
AND (PRCM.udMasterCraft IS NOT NULL) 
AND (PRCA.PREndDate BETWEEN @BegPREndDate AND @EndPREndDate)
AND PRCM.udMasterCraft BETWEEN @BegMasterCraft AND @EndMasterCraft  
AND PRCA.Class BETWEEN  @BegClass AND  @EndClass 
AND 
 (
  CASE WHEN @ExcludePREAPR='Y' THEN UPPER(PRCA.Class) not like upper('%PREAPR%') 
  else PRCA.Class
 ) 
 END
)
ORDER BY PRCA.PRCo

maybe because the PRCA.Class have two condition? 也许是因为PRCA.Class有两个条件? or i just do not write CASE Statement right. 或者我只是不写正确的CASE语句。

Dump the case statement. 转储案例声明。 Use this: 用这个:

AND (UPPER(PRCA.CLASS) not like '%PREAPR%' OR @ExcludePREAPR != 'Y')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM