3 Stimmen

Oracle CASE-Ausdruck Verwirrung

Kann mir jemand sagen, was an der folgenden Abfrage falsch ist?

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;

Mein erwartetes Ergebnis wäre:

  • CD1 wenn studydomainmetadataid kleiner als 0 ist
  • CD wenn studydomainmetadataid > 0 (d.h. 85)
  • 'xxx', wenn ANALYSISCODE nicht null ist

Ich erhalte null ANALYSISCODE.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X