SELECT CASE
WHEN vGlTransType = 'R' THEN tkt_seq_num
WHEN vGlTransType in ('A','E','X') then
break
END
Antwort
gibt es keine Schleife in CASE Verwendung
ELSE null
vor END einen Nullwert zurück, wenn andere Bedingungen nicht erfüllt sind
wie Alex erwähnt, Sie ELSE
wollen:
ELSE NULL
ist standardmäßig BTW, das heißt, Sie könnten es einfach überspringen:
SELECT CASE WHEN vGlTransType = 'R' THEN tkt_seq_num
END
Sie haben viele negative Antworten erhalten, weil Sie das falsche Vokabular verwenden. Lassen Sie mich ein article I wrote on CASE zitieren:
SQL ist eine deklarative Sprache: es ist nicht wie die Kontrolle über Programmablauf zieht, wenn tut für zwingend notwendig, Programme. Nichtsdestoweniger hat SQL etwas Ähnliches: der case Ausdruck. Ein Ausdruck - eher als eine Kontrollstruktur - bedeutet, dass Fall das Ergebnis der Formeln (Ausdrücke) basierend auf Bedingungen variiert. Seine Verwendung ähnelt dem ternären Operator : in anderen Programmiersprachen.
Ihre Frage vorschlagen, dass Sie SQL nachdenken CASE
zu C ist ähnlich SWITCH
(plus CASE
). Aber es ist nicht.
Warum willst du brechen? Was soll passieren?! – sagi
Wenn der erste Fall nicht erfüllt ist, will ich keinen Wert, ich möchte nur die Schleife verlassen und gemäß mir standardmäßig nimmt es Null, wenn die erste Bedingung nicht erfüllt ist. –
Warum nicht einfach Filter hinzufügen 'WHERE vGlTransType nicht in ('A', 'E', 'X')'? – sagi