Объединение WHERE и CASE с несколькими условиями в SQL - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть 3 условия в моем предложении WHERE:

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, измените оператор на "<>" else "=", но это не работает

1 Ответ

0 голосов
/ 26 апреля 2018

Попробуйте это:

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

Нет необходимости использовать кейс

...