首页 > 解决方案 > 在 SQL 中将 WHERE 和 CASE 与多个条件相结合

问题描述

我的 WHERE 子句中有 3 个条件:

FD.NAME = @fraude
AND substring(eei.NAME,1,12) != '##ORIGINAL##'
DOCTYP.LABEL = 'Facture'

我想修改我的第三个条件,例如:

    select .......
    where
    FD.NAME = @fraude
    AND substring(eei.NAME,1,12) != '##ORIGINAL##'
(CASE WHEN @fraude = 0
    THEN
DOCTYP.LABEL <> 'Facture'
WHEN @fraude = 1 THEN
    DOCTYP.LABEL = 'Facture'
end)

当@fraude 为 0 时,将运算符更改为“<>”,否则为“=”,但这不起作用

标签: sqlwhere

解决方案


试试这个:

AND substring(eei.NAME,1,12) != '##ORIGINAL##'
AND 
(
(
    @fraude = 0
AND
    DOCTYP.LABEL <> 'Facture'
) 
OR
(
    @fraude = 1 
AND
    DOCTYP.LABEL = 'Facture'
)
)

无需用例


推荐阅读