Hallo zusammen,
ich habe ein Problem mit einem SQL-Statement. Das SQL-Statement sieht folgendermaßen aus:
SELECT BG,Val FROM ViewKSValues WHERE
KS_Name = ‚KSEW10008‘ AND
Tab_Name = ‚KSEW10008_T6‘ AND
Col_Name = ‚MD/DK‘ AND
BG IN (SELECT BG FROM ViewKSValues WHERE
KS_Name = ‚KSEW10008‘ AND
Tab_Name = ‚KSEW10008_T6‘ AND (Col_Name = ‚GMAX‘ AND Val > ‚2100‘))
Das Statement mag etwas seltsam erscheinen, hat aber seine Berechtigung. Es funktioniert auch soweit und ich bekomme „ein richtiges Ergebnis“. Das eigentliche Problem ist, dass der Größenvergleich zwischen Val und dem Wert 2100 (Eigentlich kommt aus einer anderen Quelle ebenfalls ein String. Der Einfachheit halber habe ich hier mal einen Beispielstring angegeben.) nicht korrekt ausgeführt wird. Die Werte, die hinter Val stecken sind Strings, d.h. eigentlich dürfte das obige Statement auch gar nicht richtig funktionieren, da ich ja jetzt zwei Strings vergleiche. Deshalb war meine Idee die Hochkommata wegzulassen --> funktioniert nicht.
Dann wollte ich mit TO_NUMBER(‚2100‘) den String in eine Zahl umwandeln. Soweit ich weiß würde ORACLE eine automatische Datentypkonvertierung für Val vornehmen. Funktioniert ebenfalls nicht. Wie kann ich denn jetzt den String (hier als Beispiel ‚2100‘) in eine Zahl umwandeln, so dass ich dies mit meinem Val vergleichen kann?
Vielen Dank für jede Anregung!
Gruß,
Stevie