将 WHERE 和 CASE 与 SQL 中的多个条件组合
Combining WHERE and CASE with multiple conditions in SQL
我的 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 时,将运算符更改为“<>”,否则“=”,但这不起作用
试试这个:
AND substring(eei.NAME,1,12) != '##ORIGINAL##'
AND
(
(
@fraude = 0
AND
DOCTYP.LABEL <> 'Facture'
)
OR
(
@fraude = 1
AND
DOCTYP.LABEL = 'Facture'
)
)
不需要用例
我的 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 时,将运算符更改为“<>”,否则“=”,但这不起作用
试试这个:
AND substring(eei.NAME,1,12) != '##ORIGINAL##'
AND
(
(
@fraude = 0
AND
DOCTYP.LABEL <> 'Facture'
)
OR
(
@fraude = 1
AND
DOCTYP.LABEL = 'Facture'
)
)
不需要用例