Max: Decode-Frage O.o

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

  1. 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

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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