sql - 在 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 时,将运算符更改为“<>”,否则为“=”,但这不起作用
解决方案
试试这个:
AND substring(eei.NAME,1,12) != '##ORIGINAL##'
AND
(
(
@fraude = 0
AND
DOCTYP.LABEL <> 'Facture'
)
OR
(
@fraude = 1
AND
DOCTYP.LABEL = 'Facture'
)
)
无需用例
推荐阅读
- postgresql - Postgresql 在逻辑复制中跳过事务
- javascript - javascript中带有箭头的标记对象有什么不同?
- yocto - 添加对 systemd-udevd.service 的更改
- java - 在 java android 中使用 dagger2 在自定义/实用程序类中注入 AndroidInjection 的位置
- asp.net-mvc - tootltip 的数据绑定在 asp.net _knockout Web 应用程序中不起作用
- ecmascript-6 - 在 jquery 初始化中出现错误。未捕获的类型错误:无法在(索引)处设置未定义的属性“jquery”:27
- gradle - 将多模块 Gradle 库打包到单个模块中
- c++ - 循环并使用数字的索引作为文件名
- metal - 金属渲染通道中没有颜色附件
- java - 如何使用部件获取多部件/表单数据的参数