[英]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.