簡體   English   中英

在WHERE子句中使用CASE語句

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM