首页 > 解决方案 > 在 WHERE 子句中使用 CASE 语句

问题描述

我一直在寻找其他问题,但找不到像我的具体情况一样的问题。

我需要一些方法在我的WHERE子句中执行条件语句,如下所示:

如果字段 dqpoln 不为 0,我需要添加该比较“AND dqpoln=mppoln”。

   " SELECT ... "
   " FROM ... "
   " WHERE ((dqtype=@userType AND dqssn=@userSSN) OR (dqtype=a.maagtt AND dqssn=a.maassn)) " &
   " CASE dqpoln WHEN 0 THEN '' ELSE  AND dqpoln=mppoln  END "

我尝试CASE了几种不同的方式使用语句,也尝试了一些 IF 语句。似乎没有什么对我有用。

标签: sql

解决方案


您只能使用布尔逻辑进行尝试:

(dqpoln = 0 OR dqpoln = mppoln)

或者,如果您坚持使用CASE, 类似:

CASE dqpoln
  WHEN 0 THEN
    mppoln
  ELSE
    dqpoln
END = mppoln

推荐阅读