Hallo,
klar das geht mit CASE, damit kannst du soviele Bedingungen einbauen wie du möchtest.
SELECT
CASE WHEN NVL(feld, 'XX') = 'Auto' THEN 'Auto vorhanden'
WHEN NVL(feld, 'XX') = 'Flugzeug' THEN 'Flugzeug vorhanden'
WHEN NVL(feld, 'XX') = 'XX' THEN 'Leer'
ELSE 'etwas anderes vorhanden'
END
FROM Tabelle
Die Nullvalue Funktion ist nötig, da es fast immer zu ungewollten Ergebnissen kommt wenn man versucht mit NULL zu vergleichen.
Die Nullvalue Funktion ist nötig, da es fast immer zu
ungewollten Ergebnissen kommt wenn man versucht mit NULL zu
vergleichen.
MfG Dominik
Vielen Dank noch mal, leider habe ich das Problem, dass ich keinen Wert bekomme wenn garkeine Einträge in die Datenbank gemacht wurden
Wie es aussieht wird das Feld erst erstellt wenn ich eine Auswahl getätigt habe. Wie kann ich das nun machen wenn ich möchte, dass von anfang an immer der Wert ‚Feld ist leer‘ kommt. Doch sobald was gespeichert wird, soll es umbenannt werden.
Beispiel
Nichts wurde erfasst (Feld existiert wahrscheinlich nicht)
Abfrage soll ausgeben ‚Feld ist leer‘
Lösung ??? Ist ein leeres Feld = ‚NULL‘ ???
Auto wurde angeklickt
Abfrage soll ausgeben ‚Auto vorhanden‘
Lösung: CASE WHEN feld = ‚Auto‘ THEN ‚Auto vorhanden‘
Flugzeug wurde angeklickt
Abfrage soll ausgeben ‚Flugzeug vorhanden‘
WHEN feld = ‚Flugzeug‘ THEN ‚Flugzeug vorhanden‘
Ich kapier das nicht, alles läuft nun prima, doch wenn nichts in der DB drin ist, kommt kein text raus
Danke, danke… bin schon seit 4h an dieser ******* Abfrage.
das ist ganz normal wenn du nichts selektierst kommt auch nichts raus.
Du fragst ja eine Tabelle ab, jede Tabelle hat Spalten (Columns) aber wenn keine Zeilen (Rows) vorhanden sind bekommst du eine leere Ergebnismenge bzw. nur die Namen der Spalten.
Ja, Null ist die leere Menge, Null ist nicht das gleiche wie ‚‘ (leerer String) und auch nicht 0.
Mit Null kann man auch nicht vergleichen, man kann nur überprüfen ob ein Feld Null ist.
Wie sendest du denn Queries an die Oracle?
Schreibst du eine PL/SQL Stored Procedure? Benutzt du ADODB mit irgendeiner Programmiersprache? (Dein Elseif lässt vermuten das es VB ist )
Du kannst nämlich überprüfen ob dein Query ein Resultset mit Rows zurückgegeben hat und falls nicht deine Ausgabe anpassen.
Wie sendest du denn Queries an die Oracle?
Schreibst du eine PL/SQL Stored Procedure? Benutzt du ADODB
mit irgendeiner Programmiersprache? (Dein Elseif lässt
vermuten das es VB ist )
Du kannst nämlich überprüfen ob dein Query ein Resultset mit
Rows zurückgegeben hat und falls nicht deine Ausgabe anpassen.
MfG Dominik
Ich gebe die SQL-Befehle in Toad ein. Es handelt sich um eine Oracle DB mit Version 10.x.x.irgendwas. Also kein VB, mein Fehler.
Deine Ratschläge funktionieren super. Nur habe ich das Problem, das dieses leere Feld mit etwasem gefüllt sein muss. Da aber nur Werte in die DB geschrieben werden wenn ich was Speicher (Via HTML, je nachdem welches Feld gewählt wird, wird das in die DB geschrieben) kann ich ja hier nix abfragen. Ich möchte ein Feld machen, in welchem ich die SQL in den HTML-Code schreibe und das Ergebniss soll zeigen was da gespeichert wurde. (klingt kompliziert )
Meine Idee:
Wenn ich deine SQL mit einem Feld welches immer „Leer“ heisst kombiniere, sollte es doch klappen?
Also Feld1 (Deine Abfrage) ¦¦ Feld2 (Welches immer „Leer“ ist)
= „FlugzeugLeer“
Dann bennene ich das ergebniss in Flugzeug um oder um eben das Problem zu beheben:
Feld1 (kein Wert weil nix in DB) ¦¦ Feld2 (immer „Leer“)
= „Leer“
So bekomme ich alle drei Fälle Mann bin ich klug )
Nun muss ich nur noch wissen wie ich zwei Felder aus verschiedenen Tabellen in ein Feld bringe. Ne Idee?