sql - 如何在 SQL WHERE 子句中过滤这些特定行?
问题描述
假设我有这张桌子:
ID | A | B
1 | blue | 2
2 | red | 2
3 | blue | 1
4 | red | 1
假设我想要所有 A 列,除了蓝色对应于 B 列中的 2。
所以基本上结果应该给我第 2、3、4 行而不包括 1。
到目前为止,我有这样的事情:
SELECT *
FROM
Table
WHERE
A IN ('blue','red')
同样,对于上面的查询,它将包括第 1 行,因为它有蓝色。出于意图和目的,假设 A 列中的颜色不止这两种颜色,但我只需要这两种颜色,所以我需要第一个 WHERE 语句。当 B 列为 2 时,告诉它不包括 A 列的蓝色的最简单方法是什么?
提前致谢。
解决方案
当 B 列为 2 时,告诉它不包括 A 列的蓝色的最简单方法是什么?
这看起来像:
select *
from mytable
where a in ('blue', 'red') and not (a = 'blue' and b = 2)
您也可以将其表述为:
where a = 'red' or (a = 'blue' and b <> 2)
推荐阅读
- deep-learning - 使用 nn.Sequential() 方法 + Pytorch 编写 dropout 层
- c# - EF Code First 6.1 将 PK 密钥从 int 更改为 long
- pixi.js - PIXI.js 如何阻止 PIXI.Graphics 模糊?
- scala - 通用包装器如何使 Scala 中的 NaN 相等?
- python - python 文件编译为 .exe 后 Pytube3 停止工作
- dataframe - 如何使用 Julia、Pluto.jl 和 PlutoUI.jl 的 FilePicker 元素读取上传的 CSV 文件
- excel - 通过复制添加两个新的命令单击以形成表单
- google-cloud-platform - 在 GCP 中,如何从不同存储桶中的日志创建基于日志的指标?
- racket - Racket Programming ;写一个递归函数来计算总和(x^2, x=1..n
- android - 如何将自定义文件放入 Android/data/com.package.name/files/ 文件夹?