logo

SQL | Bedingte Ausdrücke

Im Folgenden finden Sie bedingte Ausdrücke in SQL

    Der CASE-Ausdruck: Ermöglicht die Verwendung von IF-THEN-ELSE-Anweisungen, ohne Prozeduren aufrufen zu müssen.
    In einem einfachen CASE-Ausdruck sucht die SQL nach dem ersten WHEN……THEN-Paar, für das expr gleich vergleichen_expr ist, und gibt return_expr zurück. Wenn die obige Bedingung nicht erfüllt ist, ist eine ELSE-Klausel vorhanden und die SQL gibt else_expr zurück. Andernfalls wird NULL zurückgegeben.
    Für return_expr und else_expr können wir kein Literal null angeben. Alle Ausdrücke (Ausdruck, Vergleichsausdruck, Rückgabeausdruck) müssen vom gleichen Datentyp sein.
    Syntax:



     CASE expr WHEN comparison_expr1 THEN return_expr1 [ WHEN comparison_expr2 THEN return_expr2 . . . WHEN comparison_exprn THEN return_exprn ELSE else_expr] END>

    Beispiel:

       Input : SELECT first_name, department_id, salary, CASE department_id WHEN 50 THEN 1.5*salary WHEN 12 THEN 2.0*salary ELSE salary END 'REVISED SALARY' FROM Employee;>

      Ausgabe :

      bestes Hentai

    Erläuterung : In den obigen SQL-Anweisungen wird der Wert von „department_id“ dekodiert. Bei einem Wert von 50 wird das Gehalt um das 1,5-fache erhöht, bei einem Wert von 12 um das Zweifache, andernfalls ändert sich das Gehalt nicht. Die DECODE-Funktion: Erleichtert bedingte Abfragen, indem sie die Arbeit einer CASE- oder IF-THEN-ELSE-Anweisung erledigt.
    Die DECODE-Funktion dekodiert einen Ausdruck auf ähnliche Weise wie die IF-THEN-ELSE-Logik, die in verschiedenen Sprachen verwendet wird. Die Funktion DECODE dekodiert den Ausdruck, nachdem sie mit jedem Suchwert verglichen wurde. Wenn der Ausdruck mit der Suche übereinstimmt, wird das Ergebnis zurückgegeben.
    Wenn der Standardwert weggelassen wird, wird ein Nullwert zurückgegeben, wenn ein Suchwert mit keinem der Ergebniswerte übereinstimmt.
    Syntax:



     DECODE (col/expression, search1, result1 [, search2, result2,........,] [, default])>
     Input : SELECT first_name, department_id, salary, DECODE(department_id, 50, 1.5*salary, 12, 2.0*salary, salary) 'REVISED SALARY' FROM Employee;>

    Ausgabe :

    Erläuterung: In den obigen SQL-Anweisungen wird der Wert von „department_id“ getestet. Bei einem Wert von 50 wird das Gehalt um das 1,5-fache erhöht, bei einem Wert von 12 um das Zweifache, andernfalls ändert sich das Gehalt nicht.

    COALESCE: Gibt das erste Nicht-Null-Argument zurück. Null wird nur zurückgegeben, wenn alle Argumente null sind. Es wird häufig verwendet, um Nullwerte durch einen Standardwert zu ersetzen, wenn Daten zur Anzeige abgerufen werden.
    HINWEIS: Ebenso wie CASE-Ausdrücke wertet COALESCE auch nicht die Argumente rechts vom ersten gefundenen Nicht-Null-Argument aus.
    Syntax:

     COALESCE( value [, ......] )>
     Input: SELECT COALESCE(last_name, '- NA -') from Employee;>

    Ausgabe:

    Erläuterung: - NA - wird an der Stelle angezeigt, an der der Nachname null ist, andernfalls werden die entsprechenden Nachnamen angezeigt. GREATEST: Gibt den größten Wert aus einer Liste beliebig vieler Ausdrücke zurück. Beim Vergleich wird die Groß-/Kleinschreibung beachtet. Wenn die Datentypen aller Ausdrücke in der Liste nicht identisch sind, werden alle übrigen Ausdrücke zum Vergleich in den Datentyp des ersten Ausdrucks konvertiert. Wenn diese Konvertierung nicht möglich ist, gibt SQL einen Fehler aus.
    NOTIZ: Gibt null zurück, wenn ein Ausdruck in der Liste null ist.
    Syntax:



     GREATEST( expr1, expr2 [, .....] )>
    •  Input: SELECT GREATEST('XYZ', 'xyz') from dual;>
       Output: GREATEST('XYZ', 'xyz') xyz>

      Erläuterung: Der ASCII-Wert kleiner Alphabete ist größer.

    •  Input: SELECT GREATEST('XYZ', null, 'xyz') from dual; Output: GREATEST('XYZ', null, 'xyz') ->

      Erläuterung: Da null vorhanden ist, wird daher null als Ausgabe angezeigt (wie in der Beschreibung oben erwähnt).

    IFNULL: Wenn expr1 nicht NULL ist, wird expr1 zurückgegeben; andernfalls wird expr2 zurückgegeben. Gibt abhängig vom Kontext, in dem er verwendet wird, einen numerischen Wert oder einen Zeichenfolgenwert zurück.
    Syntax:

    Tupel Java
     IFNULL( expr1, expr2 )>
    •  Input: SELECT IFNULL(1,0) FROM dual;>
       Output: - 1>

      Erläuterung : Da kein Ausdruck null ist.

    •  Input: SELECT IFNULL(NULL,10) FROM dual; Output: -- 10>

      Erläuterung: Da expr1 null ist, wird expr2 angezeigt.

    IN: Prüft, ob ein Wert innerhalb einer Wertemenge vorhanden ist und kann mit WHERE, CHECK und der Erstellung von Ansichten verwendet werden.
    HINWEIS: Wie CASE- und COALESCE-Ausdrücke wertet IN auch nicht die Argumente rechts vom ersten gefundenen Nicht-Null-Argument aus.
    Syntax:

     WHERE column IN ( x1, x2, x3 [,......] )>
     Input: SELECT * from Employee WHERE department_id IN(50, 12);>

    Ausgabe:

    Erläuterung: Alle Daten von Mitarbeitern werden mit der Abteilungs-ID 50 oder 12 angezeigt.

    LEAST: Gibt den kleinsten Wert aus einer Liste beliebig vieler Ausdrücke zurück. Beim Vergleich wird die Groß-/Kleinschreibung beachtet. Wenn die Datentypen aller Ausdrücke in der Liste nicht identisch sind, werden alle übrigen Ausdrücke zum Vergleich in den Datentyp des ersten Ausdrucks konvertiert. Wenn diese Konvertierung nicht möglich ist, gibt SQL einen Fehler aus.
    HINWEIS: Gibt null zurück, wenn ein Ausdruck in der Liste null ist.

    Java mit Swing

    Syntax:

     LEAST( expr1, expr2 [, ......] )>
    •  strong>Eingabe: SELECT LEAST('XYZ', 'xyz') from dual; Ausgabe: LEAST('XYZ', 'xyz') XYZ>

      Erläuterung: Der ASCII-Wert von Großbuchstaben ist kleiner.

    •  Input: SELECT LEAST('XYZ', null, 'xyz') from dual; Output: LEAST('XYZ', null, 'xyz') ->

      Erläuterung: Da null vorhanden ist, wird daher null als Ausgabe angezeigt (wie in der Beschreibung oben erwähnt).

    NULLIF: Gibt einen Nullwert zurück, wenn Wert1=Wert2, andernfalls wird Wert1 zurückgegeben.
    Syntax:

     NULLIF( value1, value2 )>

    Beispiel:

     Input: SELECT NULLIF(9995463931, contact_num) from Employee;>

    Ausgabe:

Erläuterung: Für den Mitarbeiter, dessen Nummer mit der angegebenen Nummer übereinstimmt, wird NULL angezeigt. Für den Rest der Mitarbeiter wird der Wert 1 zurückgegeben.