sql - 当集合中的一个或多个行的条件为真时,如何返回一组行?
问题描述
当集合中的一个或多个行的条件为真时,如何返回一组多行?
RECORD VERSION INDICATOR AREA
1234 01 A CA
1234 02 B CA
1234 03 C CA
5678 01 D CO
5678 02 L CO
5678 03 F CO
例如,如果集合中存在 B 指示符,我想返回记录集中的所有行。
我可以查询该条件,但它只返回条件为真的那一行。
SELECT
record,
version,
indicator,
area
FROM vista
WHERE indicator = 'B';
预期成绩:
RECORD VERSION INDICATOR AREA
1234 01 A CA
1234 02 B CA
1234 03 C CA
解决方案
您可以使用EXISTS
相关子查询来检查带有'B'
指示符的记录。
SELECT v1.record,
v1.version,
v1.indicator,
v1.area
FROM vista v1
WHERE EXISTS (SELECT *
FROM vista v2
WHERE v2.record = v1.record
AND v2.indicator = 'B');
推荐阅读
- python-3.x - 如何删除字符串周围的引号和转储在我的 yaml 文件中的数据中的 int
- kotlin - 如何修复 Rxjava(Kotlin)上的 subscribeWith Type 参数错误?
- sql - SQL 组合两个 SQL 语句的输出以返回布尔值
- android - 如何在 Firebase 实时数据库中执行“或”查询
- python - Keras LSTM TensorFlow 错误:“形状必须具有相同的等级,但为 1 和 0”
- php - 图片未在实时托管中显示
- logging - 无法使用 Serilog 从 HttpContext 访问用户声明以进行日志记录
- java - 如何在 hql 中创建嵌套查询,其中我们可以将 id 作为参数传递
- windows - 如果批处理文件中没有某些短语,如何删除文件?
- javascript - 链接 package.json 脚本以启动 Express 服务器和 Vue 应用程序