Decode-Frage O.o
Max
- datenbank
Hallo,
ich habe eine Frage zum DECODE-Befehl.
Die Syntax lautet ja: (Spalte,zu ersetzen,durch);
Ich möchte jetzt aber den durch-part nicht mit der hand schreiben sondern mir den Wert aus einer spalte holen wie mache ich das also
zum beispiel:
zeit,1,Stunde(1.Zeile)
stunde ist die spalte
geht das?
viele grüsse
max
Hi,
Die Syntax lautet ja: (Spalte,zu ersetzen,durch);
DECODE(Spalte, [zu ersetzen, durch]+ [, andernfalls])
Du kannst mehrere Ersetzungen in einem Abwasch machen.
Ich möchte jetzt aber den durch-part nicht mit der hand schreiben sondern mir den Wert aus einer spalte holen wie mache ich das also
Schlicht die Spalte angeben. Um genau zu sein: SQL ist es egal, welche Werte da stehen. Auch die zu ersetzende Spalte kann ein String sein - ob das Sinn macht, ist eine andere Sache.
zeit,1,Stunde(1.Zeile)
Du meinst, Du möchtest einen _anderen_ Datensatz verwenden? Das geht so nicht, das geht so _nie_. Prüfe, ob Dein DBMS (hier) Subselects beherrscht.
Cheatah
yo,
Die Syntax lautet ja: (Spalte,zu ersetzen,durch);
DECODE(Spalte, [zu ersetzen, durch]+ [, andernfalls])
DECODE(Ausdruck, Vergleich1, dann_mach_1 [, vergleich2, dann_mach_2],[mach_dies_wenn_kein_vergleich_greift])
decode entspricht einer if then else logik. gleicht eine vergleichspalte dem ausdruck, führt die dann_mach spalte aus. findet er keinen vergleich zutreffend, nimmt er default. ist der auch nicht vorhanden, gibt er NULL zurück
Ilja