我一直在寻找其他问题,找不到像我的具体情况那样的问题。
我需要某种方式在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语句。似乎对我没有任何帮助。
答案 0 :(得分:2)
您只能使用布尔逻辑来尝试:
(dqpoln = 0 OR dqpoln = mppoln)
或者,如果您坚持使用CASE
,则使用类似这样的内容:
CASE dqpoln
WHEN 0 THEN
mppoln
ELSE
dqpoln
END = mppoln
答案 1 :(得分:0)
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))
)