sql - 存在时的情况
问题描述
我正在尝试创建一个字段,如果研究中列出的任何委员会是 DSMB,那么如果不是“否”,则“是”。我正在使用 Oracle SQL Developer。
一项研究可以有多个委员会,但我想把它保持在一条线上。
但是,此查询会过滤掉所有没有 DSMB 委员会的委员会。
我希望所有研究都显示出来,如果它有 DSMB,则表示是,如果没有,则表示否。
SELECT STUDY,
CASE WHEN
EXISTS(SELECT COMMITTEE
FROM Database
WHERE COMMITTEE = 'DSMB')
THEN 'YES'
ELSE 'NO'
END "DSMB"
FROM DATABASE
谢谢!!
解决方案
如果我理解正确,您可以使用窗口函数:
SELECT STUDY,
MAX(CASE WHEN COMMITTEE = 'DSMB' THEN 'YES' ELSE 'NO' END) OVER (PARTITION BY STUDY) as "DSMB"
FROM DATABASE
推荐阅读
- intellij-idea - 无法在 IntelliJ 中运行克隆项目(无法收集依赖项)
- android - 启用 progaurd 后片段无法正常工作
- python - 将一个 Pandas DataFrame 的元素放置到另一个 DataFrame 中元素的位置
- r - 我如何在 R 中的 mutate(across...) 上指定新的变异名称
- c# - Puppeteer 查找具有特定内容的 TD 的 TR
- spring-data-jpa - Spring data jpa派生查询方法——countby返回ArrayList而不是Long
- python - 阶乘单元测试函数返回错误的测试运行
- upwork-api - 尝试从 Upwork api 获取数据时出现 CORS 错误
- python - 如何仅将带有数据的数据框附加到熊猫的标题中?
- angular - 错误 TS2322:类型“产品”不可分配给类型“NgIterable”
| 空 |未定义'。