sql - 如何选择多行,其中一行在列中具有特定值?
问题描述
我有一个数据表,如下所示。当项目的至少一个提交的状态包含 16 时,我需要创建一个显示项目所有提交的 SSRS 报告。
示例数据:
| Project | SubmittalNumber | Description | Status |
|---------|-----------------|-------------|--------|
|53613 |13-1 |Permit |16A |
|53613 |13-2 |Survey |15 |
|53613 |13-3 |Hours |14 |
|53674 |74-1 |Permit |15 |
|53674 |74-2 |Survey |14 |
|1063 |63-1 |Permit |16 |
|1063 |63-2 |Survey |13 |
我希望返回的数据:
| Project | SubmittalNumber | Description | Status |
|---------|-----------------|-------------|--------|
|53613 |13-1 |Permit |16A |
|53613 |13-2 |Survey |15 |
|53613 |13-3 |Hours |14 |
|1063 |63-1 |Permit |16 |
|1063 |63-2 |Survey |13 |
我知道使用 Where Status LIKE '16%' 将只返回某些版本为 16 的行,而不是与项目相关的其他行。我还找到了 Exist 的解决方案,但这似乎适用于使用来自 2 个单独表的数据时。我确信解决方案很简单,但我一直无法找到它。有人可以帮忙吗?
解决方案
您可以尝试使用EXISTS
子查询LIKE
SELECT *
FROM T t1
WHERE EXISTS (
SELECT 1
FROM T tt
WHERE Status LIKE '16%' AND tt.Project = t1.Project
)
推荐阅读
- php - 将数组值显示到txt文件
- javascript - 无法从 Array 获取信息
- spring - HttpServletResponse 设置字符集在 Quarkus/undertow 中不起作用
- java - Java - 用于查找接口实现类的实用程序
- azure - Azure VM 中的数据安全性如何
- apache-spark - 如何在 UDF 中创建数据框
- h2o - H2o Driverless ai最新稳定1.8版本支持图像分类吗
- firebase - 此用户的凭据对此项目无效,react-native-firebase 中的 confirmResult.confirm(codeInput) 出错
- c# - Windows Forms 数据库使用 LINQ 自动生成 ID 列
- elasticsearch - 如何使用 query_string 查询进行词组前缀搜索