我正在尝试创建一个字段,如果研究中列出的任何委员会是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
谢谢!
答案 0 :(得分:1)
如果我理解正确,则可以使用窗口功能:
SELECT STUDY,
MAX(CASE WHEN COMMITTEE = 'DSMB' THEN 'YES' ELSE 'NO' END) OVER (PARTITION BY STUDY) as "DSMB"
FROM DATABASE