3
任何人都可以告诉我下面的查询有什么问题吗?Oracle CASE表达式混淆
select case
when ANALYSISCODE is null and
studydomainmdata.studydomainmetadataid > 0
then 'CD'
when ANALYSISCODE is null and
studydomainmdata.studydomainmetadataid < 0
then 'CD1'
when analysiscode is not null
then ANALYSISCODE
else 'N/A'
end as ANALYSISCODE
from studyanalysis
inner join (slmetadata
inner join studydomainmdata
on slmetadata.slmetadataid = studydomainmdata.slmetadataid and
studydomainmdata.studydomainmetadataid=-9)
on studyanalysis.analysisid = slmetadata.analysisid;
我的预期的结果将是:
- CD1如果studydomainmetadataid是如果studydomainmetadataid> 0
- 'XXX' 如果ANALYSISCODE是不小于0
- CD(I,E 85) null
我得到空ANALYSISCODE。
欢迎来到StackOverflow。请在下次使用更具描述性的标题并使用'{}'按钮来设置代码的格式。 – Codo 2012-07-30 11:30:30
并显示您收到的任何错误;如果得到错误的结果而不是错误,表结构,样本数据和预期输出。 – 2012-07-30 11:50:07
如果ANALYSISCODE为null,并且studydomainmdata.studydomainmetadataid = 0,则您的查询将返回null – 2012-07-30 12:09:04