sql-server - 在多列上具有多个条件的情况
问题描述
我试图弄清楚如何使这项工作:
CASE
WHEN a.val IS NULL AND (a.CreatedBy <> 'MDI' OR a.Type <> 'RO' OR a.Unit <> 'ER') THEN 1
ELSE 0
END as field_name
基本上我正在寻找行 where a.val
is null
,但如果这些列(a.CreatedBy
或a.Type
或a.Unit
)中的任何一个具有特定值,则忽略该行。即使这些列之一对于特定值是 true,case 也应该返回0
。
是否可以?提前致谢。
解决方案
您将需要 AND 而不是 OR 运算符。
CASE WHEN a.val IS NULL
AND a.CreatedBy <> 'MDI'
AND a.Type <> 'RO'
AND a.Unit <> 'ER'
THEN 1
ELSE 0
END as field_name
推荐阅读
- mysql - (Docker) Laravel 和 Artisan 命令 .env DB_HOST 冲突
- amazon-web-services - Cloudformation:切割配置文件的最佳实践是什么?
- r - R循环用于显示多个数据帧中最丰富的行
- api - 如何从按键获取执行的命令
- javascript - 有人可以解释一下这个“while”循环吗?(重复和变量)
- python - OSError:[Errno -9996] 尝试在 Windows 中使用 pyaudio 录制音频时输入设备无效(无默认输出设备)
- oracle - 哪些非 4.* .NET 应用程序版本与 Standard 兼容?
- regex - 如何在 java 中不能包含数字的单词上使用正则表达式?
- python - Pandas - 在数字上插入逗号
- c# - Removing a row for a DataRowCollection doesn't work