[英]Using a CASE statement in the WHERE clause
我一直在寻找其他问题,找不到像我的具体情况那样的问题。
我需要一些方法在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语句。 似乎对我没有任何帮助。
您只能使用布尔逻辑来尝试:
(dqpoln = 0 OR dqpoln = mppoln)
或者,如果您坚持使用CASE
,则类似以下内容:
CASE dqpoln
WHEN 0 THEN
mppoln
ELSE
dqpoln
END = mppoln
OP。 我不知道我是否完全理解你的问题。 您是在说dqpoln不为0的情况下,它必须加上条件AND dqpoln = mppoln
下面的伪代码应该基于您对问题的了解而运行。 假定这两个条件之一必须成立(要么为0,否则为dqpoln = mpplon):
SELECT
...
FROM
...
WHERE
(
(dqtype=@userType AND dqssn=@userSSN) OR (dqtype=a.maagtt AND dqssn=a.maassn)
) AND
(
((dqpoln = 0) OR (dqpoln=mppoln))
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.