Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.

Funktion to_char mit Zahlen

Datenkonvertierung Funktionen zu anderen Datentypen. To_char (Nummer) konvertiert eine Nummer in Text. To_number konvertiert den Text in die Nummer.

Wählen Sie to_char (123) von Dual von Dual ergibt die Zeile 123, wählen Sie to_number (`12345") von Dual sendet die Nummer 12345 zurück.

Labor arbeit. Ändern des Formats der Ausgangsnummern

Änderungen im Format von numerischen Werten in Oracle SQL, der TO_CHAR-Funktion, um mit numerischen Werten zu arbeiten.

Die Aufgabe:

Schreiben Sie eine Anforderung, die Informationen über den Namen, den Namen, den Nachnamen und das Gehalt von Mitarbeitern von der TABELLE HR.PEOTEES in dem in FIG. 3.4-1:

Feige. 3.4. -1

Gleichzeitig müssen die Daten so sortiert werden, dass Zeilen für Mitarbeiter mit dem größten Gehalt zuerst angezeigt werden.

Hinweis:

Einige Löhne in FIG. 3.4-1 wurden geändert, sodass sie nicht mit Ihren Werten übereinstimmen.

Entscheidung:

Wählen Sie First_Name als "Name", Lastname als "Nachname", to_char (Gehalt, "L9999999999.99") als "Salat" von HR.Peunity-Bestell von Gehaltsabsc.

Funktionen to_number and to_date

Zeile Konvertierungsfunktion beim T_DATE-Datum (String, Format). Mögliche Formate werden bereits oben betrachtet, sodass ich einige Beispiele für die Verwendung dieser Funktion angeben. Beispiele:

WÄHLEN To_date (01.01.2010, `dd.mm.yyyy) Von. Dual wird das Datum "01.01.2010" zurückgeben;

WÄHLEN To_date (01.jan.2010, `dd.mon.yyyy) Von. Dual wird das Datum zurücksenden "01.01.2009";

WÄHLEN To_date ("15-01-10", `dd-mm-yy") Von. Dual wird das Datum der 01.01.2010 zurückgeben. "

Zeilenumwandlungsfunktion auf den numerischen Wert to_number (String, Format). Die häufigsten Formate sind in der Tabelle aufgeführt, berücksichtigen Sie also die Verwendung dieser Funktion in den Beispielen. Beispiele:

WÄHLEN To_number (`100") Von. Dual wird die Nummer 100 zurückgeben, um to_number auszuwählen (0010.01, "9999D99) Von. Dual wird die Nummer 10.01 zurückgeben;

WÄHLEN To_number ("500.000", "999G999") Von. Dual wird die Nummer 500000 zurückgeben.

RR-Element im Datumsformat

Das Element des Datums- und Uhrzeit-RR-Formats ist dem Element des YY-Datums- und Uhrzeitformats ähnlich, es bietet jedoch zusätzliche Flexibilität, um die Datumswerte und in anderen Jahrhunderten zu speichern. Mit einem Element des RR-Datums und des Zeitformats können Sie die Termine des 20. Jahrhunderts im 21. Jahrhundert speichern, was nur die beiden letzten Ziffern des Jahres angibt.

Wenn die beiden letzten Zahlen des laufenden Jahres 00 bis 49 Jahre alt sind, hat das Rückfahrjahr die gleichen ersten beiden Ziffern wie im laufenden Jahr.

Wenn die beiden letzten Zahlen des laufenden Jahres von 50 bis 99, sind die ersten 2 Ziffern des zurückgegebenen Jahres 1 mehr als in den ersten 2 Ziffern des laufenden Jahres.

Wenn die beiden letzten Zahlen des laufenden Jahres 00 bis 49 sind, sind die ersten 2 Ziffern des zurückgegebenen Jahres 1 weniger als die ersten 2 Ziffern des laufenden Jahres.

Wenn die beiden letzten Zahlen des laufenden Jahres von 50 bis 99, dann hat das zurückgegebene Jahr die gleichen ersten beiden Ziffern wie im laufenden Jahr.

Nvl feature.

Die NVL-Funktion wird in der Regel meistens angewendet. Die Funktion empfängt zwei Parameter: NVL (EXPR1, EXERG2). Wenn der erste Parameter EXPR1 nicht gleich Null ist, gibt die Funktion seinen Wert zurück. Wenn der erste Null-Parameter, dann gibt die Funktion den Wert des zweiten Parameters des Exerg2 zurück.

Beispiel: Wählen Sie NVL (Supplier_City, N / A ") aus Lieferanten:

Die SQL-Anweisung gibt n / "Wenn das Feld Supplier_City einen Nullwert enthält. Andernfalls gibt es den Wert lieferlig_city zurück.

Ein anderes Beispiel für die Verwendung der NVL-Funktion in Oracle / PLSQL lautet:

select Supplier_ID, NVL (Supplier_Desc, Suppliername) von Lieferanten.

Diese SQL-Anwendung wird zurückgegeben name des Anbieters. Feld, wenn suppier_dec. Enthält Nullwert. Ansonsten wird er zurückkehren suppier_dec..

Letzte Beispiel: Verwenden der NVL-Funktion in Oracle / PLSQL lautet: Wählen Sie NVL (Commission, 0) aus dem Umsatz aus.

Diese SQL-Anweisung kehrte auf 0 zurück, wenn kommission Das Feld enthält einen Nullwert. Andernfalls wäre es möglich, zurückzukehren kommission Feld.

NVL-Konvertierung für verschiedene Datentypen

Um einen unbestimmten Wert in die tatsächliche Funktion umzuwandeln, wird die NVL-Funktion verwendet: Nvl ( expression1, Expression 2), wo:

expression1- Quelle oder berechneter Wert, der unsicher sein kann.

expression2. - ein Wert, der anstelle eines unbestimmten Werts substituiert ist.

Hinweis: Die NVL-Funktion kann verwendet werden, um jede Art von Daten zu konvertieren, das Ergebnis ist jedoch immer derselbe Typ wie expression1.

NVL-Transformation für verschiedene Typen:

Nummer - NVL. (numerische Spalte, 9).

Char oder varchar2 - nvl (Symbole | Spalte, "Nicht verfügbar").

Labor arbeit. Anwendung der NVL-Funktion

NVL-Funktion, um mit unsicheren Werten in Oracle SQL zu arbeiten.

Die Aufgabe:

Schreiben Sie eine Anforderung, die Informationen über den Namen und den Namen des Personals von der HR.Meunty-Tabelle anzeigt. Sowie das Angebot der Kommission (Spalte Commission_PCT) für den Mitarbeiter. Gleichzeitig ist für diese Mitarbeiter, für die die Kommission nicht definiert ist, ein Wert von 0. Das Ergebnis der Abfrage muss wie in Fig. 1 dargestellt sein. 3,5-1.

Feige. 3.5. -1 (Werte starten von der Zeile 51)

Entscheidung:

Der Code der entsprechenden Anfrage kann sein:

Wählen Sie First_Name als "Name", Lastname als "Nachname", NVL (Commission_PCT, 0) als "Commission-Tarife" von HR.Employes.

Nvl feature.

Die NVL-Funktion wird in der Regel meistens angewendet. Die Funktion erhält zwei Parameter: NVL (EXPR1, EXPR2). Wenn der erste Parameter EXPR1 nicht gleich Null ist, gibt die Funktion seinen Wert zurück. Wenn der erste Null-Parameter, gibt die Funktion den Wert des zweiten Expr2-Parameters zurück.

Erwägen praktisches Beispiel. Das COMM-Feld in der EMP-Tabelle kann Nullwerte enthalten. Beim Durchführen einer Abfrage des Formulars:

Wählen Sie EMPNO, Ename, COMM, NVL (COMM, 0) NVL_COMM

Von Scott.emp.

nullwert. wird durch Null ersetzt. Bitte beachten Sie, dass bei der Bildung des Werts mit Hilfe der Funktion ein Pseudonym zugeordnet ist. Die Suchergebnisse anfordern werden:

Empno. Ename Comm. Nvl_comm.
7369 Schmied 0
7499 Allen 300 300
7521 Station 500 500
7566 Jones 0
7654 Martin. 1400 1400
7698 Blake 0
7782 Clark. 0
7839 König. 0
7844 Turner 0 0
7900 James. 0
7902 Ford. 0
7934 Müller 0

Ceil (n)

Die CEIL-Funktion gibt die kleinste Ganzzahl, größer oder gleich der Anzahl von N zurück. Beispielsweise:

Wählen Sie CEIL (100) X1, CEIL (-100) X2, CEIL (100.2) x3, CEIL (-100.2) x4

Von Dual.

Trunc-Funktion (n [, m])

Die Trunkerfunktion gibt die Zahlen n zurück, die nach dem Dezimalpunkt an M-Zeichen abgeschnitten ist. Der M-Parameter darf nicht angezeigt werden - in diesem Fall wird n auf das Ganze abgeschnitten.

Wählen Sie Runc (100.25678) x1, trunc (-100.25678) x2, trunc (100.99) x3,

Trunc (100.25678, 2) x4

Von Dual.

Zeichen (n) Funktion

Die Zeichenfunktion bestimmt die Anzahl der Zahlen. Wenn n positiv ist, kehrt die Funktion 1 zurück, wenn negativ -1 zurückgegeben wird. Wenn Null Null ist, wird 0 zurückgegeben. Zum Beispiel:

Wählen Sie Zeichen (100.22) x1, Zeichen (-100.22) x2, Zeichen (0) x3

Von Dual.

Ein interessantes Merkmal dieses Merkmals ist die Möglichkeit, M gleich Null zu übertragen - er tritt nicht die Divisionsfehler von 0 auf.

Leistung (n, m) Funktion

Die Power-Funktion erstellt die Nummer n in den Grad m. Der Grad kann fraktioniert und negativ sein, was die Fähigkeiten dieser Funktion erheblich ausdehnt.

Wählen Sie die Leistung (10, 2) x1, Leistung (100, 1/2) x2,

Leistung (1000, 1/3) x3, Leistung (1000, -1/3) x4

Von Dual.

X1. X2. X3. X4.
100 10 10 0,1

In einigen Fällen kann beim Anrufen dieses Merkmals eine Ausnahme auftreten. Beispielsweise:

Wählen Sie Macht (-100, 1/2) x2

Von Dual.

In diesem Fall wird ein Versuch unternommen, eine Quadratwurzel von einer negativen Zahl zu berechnen, die zu einem ORA-01428-Argument außerhalb des Reichweiten-Fehlers führt.

SQRT (n) Funktion

Dieses Feature Gibt die Quadratwurzel von der Nummer N zurück Beispielsweise:

Wählen Sie SQRT (100) x

Von Dual.

Funktionen exp (n) und ln (n)

Die Exp-Funktion erährt E in den Grad n, und die LN-Funktion berechnet den natürlichen Logarithmus von n (mit n, n muss größer als null sein). Beispiel:

Wählen Sie Exp (2) x1, ln (1) x2, ln (exp (2)) x3

Nvl feature.

Die NVL-Funktion wird in der Regel meistens angewendet. Die Funktion erhält zwei Parameter: NVL (EXPR1, EXPR2). Wenn der erste Parameter EXPR1 nicht gleich Null ist, gibt die Funktion seinen Wert zurück. Wenn der erste Null-Parameter, gibt die Funktion den Wert des zweiten Expr2-Parameters zurück.

Betrachten Sie ein praktisches Beispiel. Das COMM-Feld in der EMP-Tabelle kann Nullwerte enthalten. Beim Durchführen einer Abfrage des Formulars:

Wählen Sie EMPNO, Ename, COMM, NVL (COMM, 0) NVL_COMM

Von Scott.emp.

nullwert wird durch Null ersetzt. Bitte beachten Sie, dass bei der Bildung des Werts mit Hilfe der Funktion ein Pseudonym zugeordnet ist. Die Suchergebnisse anfordern werden:

Empno. Ename Comm. Nvl_comm.
7369 Schmied 0
7499 Allen 300 300
7521 Station 500 500
7566 Jones 0
7654 Martin. 1400 1400
7698 Blake 0
7782 Clark. 0
7839 König. 0
7844 Turner 0 0
7900 James. 0
7902 Ford. 0
7934 Müller 0

Ceil (n)

Die CEIL-Funktion gibt die kleinste Ganzzahl, größer oder gleich der Anzahl von N zurück. Beispielsweise:

Wählen Sie CEIL (100) X1, CEIL (-100) X2, CEIL (100.2) x3, CEIL (-100.2) x4

Von Dual.

Trunc-Funktion (n [, m])

Die Trunkerfunktion gibt die Zahlen n zurück, die nach dem Dezimalpunkt an M-Zeichen abgeschnitten ist. Der M-Parameter darf nicht angezeigt werden - in diesem Fall wird n auf das Ganze abgeschnitten.

Wählen Sie Runc (100.25678) x1, trunc (-100.25678) x2, trunc (100.99) x3,

Trunc (100.25678, 2) x4

Von Dual.

Zeichen (n) Funktion

Die Zeichenfunktion bestimmt die Anzahl der Zahlen. Wenn n positiv ist, kehrt die Funktion 1 zurück, wenn negativ -1 zurückgegeben wird. Wenn Null Null ist, wird 0 zurückgegeben. Zum Beispiel:

Wählen Sie Zeichen (100.22) x1, Zeichen (-100.22) x2, Zeichen (0) x3

Von Dual.

Ein interessantes Merkmal dieses Merkmals ist die Möglichkeit, M gleich Null zu übertragen - er tritt nicht die Divisionsfehler von 0 auf.

Leistung (n, m) Funktion

Die Power-Funktion erstellt die Nummer n in den Grad m. Der Grad kann fraktioniert und negativ sein, was die Fähigkeiten dieser Funktion erheblich ausdehnt.

Wählen Sie die Leistung (10, 2) x1, Leistung (100, 1/2) x2,

Leistung (1000, 1/3) x3, Leistung (1000, -1/3) x4

Von Dual.

X1. X2. X3. X4.
100 10 10 0,1

In einigen Fällen kann beim Anrufen dieses Merkmals eine Ausnahme auftreten. Beispielsweise:

Wählen Sie Macht (-100, 1/2) x2

Von Dual.

In diesem Fall wird ein Versuch unternommen, eine Quadratwurzel von einer negativen Zahl zu berechnen, die zu einem ORA-01428-Argument außerhalb des Reichweiten-Fehlers führt.

SQRT (n) Funktion

Diese Funktion gibt eine Quadratwurzel von n Nummer zurück. Beispielsweise:

Wählen Sie SQRT (100) x

Von Dual.

Funktionen exp (n) und ln (n)

Die Exp-Funktion erährt E in den Grad n, und die LN-Funktion berechnet den natürlichen Logarithmus von n (mit n, n muss größer als null sein). Beispiel:

Wählen Sie Exp (2) x1, ln (1) x2, ln (exp (2)) x3

Investierte Funktionen Wir haben ein wenig früher berührt, betrachten sie jetzt etwas detaillierter. Wir werden auch die Funktion der Arbeiten mit dem Wert von NULL und den Funktionen berücksichtigen, die den Zweigbetrieb in der Anforderung umsetzen können.

Verschachtelte Funktionen

Verschachtelte Funktionen Ich verwende den zurückgegebenen Wert einer Funktion als Eingabeparameter für eine andere Funktion. Funktionen geben immer nur einen Wert zurück. Daher können Sie das Ergebnis der Funktion der Funktion als wörtlicher Wert in Betracht ziehen, wenn Sie ihn als Anrufparameter in eine andere Funktion verwenden. Linienfunktionen können an beliebige Nennebene angehängt werden. Anruf Eine Funktion sieht aus wie

Funktion1 (Parameter1, Parameter2, ...) \u003d Ergebnis

Das Ersetzen des Funktionsparameters zum Anrufen einer anderen Funktion kann zum Erscheinungsbild von Arten führen

F1 (Param1.1, F2 (Param2.1, Param2.2, F3 (Param3.1)), Param1.3)

Zuerst werden verschachtelte Funktionen berechnet, bevor ihre Ergebnisse als Eingabewerte für andere Funktionen verwendet werden. Funktionen werden aus dem tiefsten Nennstand des Nestings bis zum obersten linken Richtigen berechnet. Der vorherige Ausdruck wird wie folgt ausgeführt

  1. Abbildung F3 (Param1) wird berechnet und der Rückgabewert wird als dritter Parameter für Funktion 2 verwendet, lasst uns das Param2.3 anrufen.
  2. Die Funktion F2 wird dann berechnet (Param1, Param2.2, Param2.3) und der Rückgabewert wird als zweiter Parameter F1-Funktion verwendet - param1.2.
  3. Schließlich wird die Funktion F1 (Param1, Param2, Param1.3) berechnet und das Ergebnis wird in das Rufprogramm zurückgegeben.

Somit befindet sich die F3-Funktion im dritten Verschachtelungsniveau.

Betrachten Sie die Anfrage

select_day (last_day (sysdate) -7, 'tue') von doppelt;

  1. In dieser Abfrage, drei Funktionen, von der unteren Ebene bis zum Top-Sysdate, Last_Day, Next_Day. Die Anforderung wird wie folgt durchgeführt.
  2. Die am meisten verschachtelte SysDate-Funktion wird ausgeführt. Es gibt die aktuelle Systemzeit zurück. Angenommen, das aktuelle Datum vom 28. Oktober 2009
  3. Das Ergebnis ist das Ergebnis der zweiten Ebene Function Last_Day. Last_Date ('28 -Oxt-2009 ') kehrt den letzten Tag des Oktober 2009 zurück, dh der Wert vom 31. Oktober 2009.
  4. Dann tritt die Subtraktion von diesem Datum von sieben Tagen auf - er stellt sich am 24. Oktober heraus.
  5. Und schließlich wird die Funktion next_day ('24 -oxt-2009 ',' tue ') berechnet, und die Anfrage kehrt den letzten Dienstag im Oktober zurück - das in unserem Beispiel 27-Okt 2009.

Es ist ziemlich schwierig, komplexe Ausdrücke mit vielen angehängten Herausforderungen der Funktionen zu verstehen und zu bauen, aber es kommt mit Zeit und Praxis. Sie können solche Ausdrücke des Teils aufbrechen und separat testen. Tabelle Dual ist sehr nützlich für das Testen von Z.Aprosov und den Ergebnissen der Funktion der Funktion. Sie können kleine Komponenten testen und debuggen, die dann in einen großen gewünschten Ausdruck kombinieren.

Zweigfunktionen

Zweigfunktionen, auch bekannt, als ob etwas - Andernfalls wird der Implementierungspfad in Abhängigkeit von den Umständen verwendet. Die Funktionen der Verzweigungsrückgabe geben unterschiedliche Ergebnisse zurück, die auf keinem Ergebnis der Berechnung des Zustands basieren. Die Gruppe solcher Funktionen gibt Funktionen der Arbeit mit dem Wert von NULL: NVL, NVL2, Null und Coalesce an. Und auch die gemeinsamen Merkmale, die durch die Dekodierungsfunktion und den Fallausdruck dargestellt werden. Die Decode-Funktion ist eine Oracle-Funktion, während der Fallausdruck im Ansi-SQL-Standard vorhanden ist.

Nvl feature.

Die NVL-Funktion prüft den Wert der Spalte oder exprimieren einen beliebigen Datentyp auf null. Wenn null - er gibt einen alternativen nicht-Null-Standardwert zurück, andernfalls wird der Anfangswert zurückgegeben.

Die NVL-Funktion verfügt über zwei erforderliche Parameter und NVL-Syntax (Original, IFNULL), wo das Original der ursprüngliche Wert für das Prüfen und das Ergebnis von IFNULL ist, das von der Funktion zurückgegeben wird, wenn der ursprüngliche Wert null ist. Die Art der Daten der ifNull- und ursprünglichen Parameter muss kompatibel sein. Das heißt, entweder muss der Datentyp gleich sein oder sollte die Möglichkeit haben, die Umwandlung von Werten von einem Typ zu einem anderen implizit zu erfüllen. Die NVL-Funktion gibt den Wert desselben Datentyps als Datentyp des ursprünglichen Parameters zurück. Betrachten Sie drei Anfragen

Abfrage 1: Wählen Sie NVL (1234) aus zwei;

Query 2: Wählen Sie NVL (NULL, 1234) aus zwei;

Abfrage 3: Wählen Sie NVL (Substr (ABC ', 4), "No Substring existiert") von Dual;

Da die NVL-Funktionen zwei Parameter erfordern, gibt Abfrage 1 den Fehler ORA-00909 zurück: Ungültige Anzahl von Argumenten. Die Anforderung 2 gibt 1234 zurück, da der Nullwert geprüft wird und es ist null. Frage Drei wird verwendete verschachtelte Untersteuerfunktion, die versucht, das vierte Zeichen aus einer Zeichenfolge in drei Zeichen lang auszuwählen, den Nullwert zurückzugeben, und die NVL-Funktion gibt die Zeichenfolge 'NO SBUSTRING existiert.

Die NVL-Funktion ist bei der Arbeit mit Zahlen sehr nützlich. Es wird verwendet, um Nullwerte auf 0 umzuwandeln, damit die arithmetischen Operationen an den Zahlen nicht null zurückgegeben werden

Nvl feature.2

Die NVL2-Funktion sorgt für mehr Funktionelle als NVL, dient auch dazu, den Nullwert zu verarbeiten. Es prüft den Wert der Spalte oder den Ausdrücken eines beliebigen Typs an null. Wenn der Wert nicht gleich Null ist, ist der zweite Parameter beteiligt, andernfalls wird der dritte Parameter im Gegensatz zur NVL-Funktion zurückgegeben, der in diesem Fall den Anfangswert zurückgibt.

Die NVL2-Funktion verfügt über drei erforderliche Parameter und NVL2-Syntax (Original, IFNOTNULL, IFNULL, IFNULL), wobei Original ein gültiger Wert ist, wenn das Original nicht null ist und ifull in dem Fall zurückgegeben wird, wenn das Original null ist. Die Arten von Daten von IFNOTNULL und IFNULL-Parameter müssen kompatibel sein, und sie können nicht länger sein. Der Datentyp der zurückgegebenen NVL2-Funktion entspricht der Art der Daten des Parameters IFNOTNULL. Betrachten Sie ein paar Beispiele

Abfrage 1: Wählen Sie NVL2 (1234, 1, 'eine Zeichenfolge') von Dual;

Abfrage 2: Wählen Sie NVL2 (NULL, 1234, 5678) aus zwei;

Abfrage 3: Wählen Sie NVL2 (SUBSTR (ABC ', 2),' nicht BC ',' NO SUBSTRING ') von Dual;

IFNOTNULL-Parameter in der Abfrage 1 ist die Nummer, und der Parameter IFNULL ist eine Zeichenfolge. Da Datentypen nicht kompatibel sind, wird der Fehler "ORA-01722: Ungültige Zahl" zurückgegeben. Warteschlange Zwei Returns IFNULL-Parameter, da Original null ist und das Ergebnis 5678 beträgt. Die Abfrage drei verwendet die Substrom-Funktion, die 'BC' zurückgibt, und nvl2 ('BC', 'nicht BC', 'NO SUBSPLING'), die zurückgibt IFNOTNULL-Parameter - 'nicht bc'.

Nullif-Funktion

Die Nullif-Funktion prüft zwei Werte für Identität. Wenn sie gleich sind - null wird zurückgegeben, da sonst der erste Parameter zurückgegeben wird. Die Nullif-Funktion verfügt über zwei obligatorische Parameter und Syntax-Nullf (Ifunequal, Vergleich_Item). Die Funktion vergleicht zwei Parameter und wenn sie identisch sind - null wird zurückgegeben, ansonsten der ifunequal-Parameter. Anfragen berücksichtigen

Abfrage 1: Wählen Sie Nullif (1234, 1234) aus zwei;

Die Anforderung zurückgibt Null, da die Parameter identisch sind. Zeilen in der Abfrage 2 werden nicht in das Datum umgewandelt, sondern werden als Zeilen verglichen. Da Reihen unterschiedlicher Längen - den Parameter IFUNEQUAL 24-JUL-2009 zurückgeben.

Abbildung 10-4, die Nullif-Funktion wird in die NVL2-Funktion investiert. In der Nullif-Funktion werden wiederum die Sub- und obere Funktionen als Teil der Expression im ifunequal-Parameter verwendet. Die E-Mail-Spalte wird mit diesem Ausdruck verglichen, der den ersten Buchstaben des Namens zurückgibt, der mit dem Nachnamen für Mitarbeiter vereint ist, die einen Namen in 4 Zeichen haben. Wenn diese Werte gleich sind, kehrt Nullif NULL zurück, der Wert des ifunequal-Parameters gibt den Wert zurück. Diese Werte werden als Parameter für die NVL2-Funktion verwendet. NVL2 wiederum kehrt die Beschreibung zurück, ob die kompaabierbaren Elemente zusammenfallen oder nicht.

Abbildung 10-4 - Verwenden von Nullif-Funktion

Coalesce-Funktion.

Die CoalesSce-Funktion gibt den ersten Wert zurück, der nicht gleich Null aus der Parameterliste ist. Wenn alle Parameter null sind, wird null zurückgegeben. Die CoalesSce-Funktion hat zwei erforderliche Parameter und wie viele optionale Parameter und Coalesce-Syntax (EXPR1, expr2, ..., exprn), in denen das Ergebnis expr1 ist, wenn der Wert von expr 1h null ist, da sonst das Ergebnis expr2 ist, wenn er nicht null ist , usw. Coalesce ist gleichermaßen in der Bedeutung von NVL-Funktionen

COALESCE (EXPR1, EXPR2) \u003d NVL (EXPR1, EXPR2)

COALESCE (EXPR1, EXPR2, EXPR3) \u003d NVL (EXPR1, NVL (EXPR2, EXPR3))

Datentyp Rückgabewert Wenn nicht der Null-Nullwert ist, ist der Datentyp des ersten nicht-Nullwerts gleich. Um den Fehler "ORA-00932: Inkonsistente Datentypen" zu vermeiden, müssen alle nicht-Null-Parameter mit dem ersten Null-Parameter kompatibel sein. Betrachten Sie drei Beispiele

Abfrage 1: Wählen Sie COALESSE (NULL, NULL, NULL, 'A string') von Dual;

Abfrage 2: Wählen Sie COALESSE (NULL, NULL, NULL) von Dual;

Query 3: Wählen Sie COALESSCE (Substr (ABC ', 4),' nicht BC ',' NO SUBSTRING ') von Dual;

Anfrage 1 gibt den vierten Parameter zurück: String, da dies der erste Nullparameter ist. Die Abfrage zwei gibt null zurück, da alle Parameter null sind. Die Anforderung 3 berechnet den ersten Parameter, erhält den Nullwert und gibt den zweiten Parameter zurück, da er der erste nicht null-Parameter ist.

Die NVL2-Funktionsparameter können verwirren, wenn Sie mit der NVL-Funktion bereits vertraut sind. NVL (Original, IFNULL) Gibt das Original zurück, wenn der Wert nicht null ist, andernfalls iFull. NVL2 (Original, IFNOTNULL, IFNULL) Gibt den IFNOTNull zurück, wenn der ursprüngliche Wert nicht gleich Null ist als nicht ifnull. Die Verwirrung tritt aufgrund der Tatsache auf, dass der zweite Parameter der Funktion NVL IFNULL, während NVL2 IFNOtnull ist. Hoffen Sie also nicht, den Parameter in der Funktion zu positionieren.

Dekodierungsfunktion.

Die Dekodierungsfunktion implementiert, wenn-then-andere Logik. Überprüfen der ersten beiden Parameter pro Gleichheit und Rückgabe des dritten Werts im Falle ihrer Gleichheit oder einem anderen Wert im Falle der Ungleichheit. Die Dekodierungsfunktion verfügt über drei erforderliche Parameter und Syntax-Decodieren (EXPR1, Comp1, IFTRUE1 ,,). Diese Parameter werden verwendet, wie in dem folgenden Pseudo-Codebeispiel gezeigt.

Wenn expr1 \u003d comp1, dann return iftrue1

Sonst, wenn expr1 \u003d comp2, dann return iftrue2

Sonst, wenn exprn \u003d compn dann zurückgibt, wenn

Sonst return null | iffalse;

Zunächst wird der EXPR1 mit Comp1 verglichen. Wenn sie dem Wert von iftrue1 gleich sind. Wenn EXPR1 nicht gleich Comp1 ist, hängt das weiterhin davon ab, ob die Parameter des Comp2 und IFTRUE2 angegeben sind. Wenn Sets eingestellt sind, wird der EXPR1-Wert mit dem Comp2 verglichen. Wenn Werte gleich sind, wird IFTRUE2 zurückgegeben. Wenn nicht, wenn es Compn-Parameterpaare gibt, vergleicht IFTRUEN EXPR1 und COMPN und wenn IFTRUEN im Falle der Gleichheit zurückgegeben wird. Wenn in allen Parametern kein Zufall gielt, wird es zurückgegeben, wenn dieser Parameter eingestellt wurde, oder null.

Alle Parameter in der Decodierfunktion können Ausdrücke sein. Die Art des zurückgegebenen Werts ist gleich dem Typ des ersten Überprüfungselements - dem Parametercomp 1. Expr-Ausdruck 1 Implizit in den Datentyp des Comp-Parameters konvertiert1. Alle anderen verfügbaren Comp-Optionen1 ... compn. Auch implizit in den Comp-Typ umgewandelt1. Decode berücksichtigt den Nullwert als einem anderen Nullwert, d. H. Wenn EXPR1 NULL und Comp3 NULL ist, und Comp2 ist nicht , dann wird der IFTRUE3-Wert zurückgegeben. Betrachten Sie ein paar Beispiele

Abfrage 1: Wählen Sie Decodieren (1234, 123, '123 ist ein Match') von doppelt;

Abfrage 2: Dekodieren auswählen (1234, 123, '123 ist ein Match', 'No Match') von Dual;

Query 3: Select Decodieren ('Suchen', 'comp1', 'true1', 'comp2', 'true2', 'such', 'true3', substr ('2Search', 2, 6), 'true4', ' falsch ') von doppelt;

Die Anfrage vergleicht den Wert von 1234 und 123. Da sie nicht gleich sind, wird dann iftrue1 ignoriert und da nicht definiert ist, wenn null zurückgegeben wird. Die Abfrage ist identisch mit der Abfrage 1, in der Ausnahme, dass der IFFALSE-Wert definiert ist. Da 1234 nicht gleich 123 ist, wird IFFALSE zurückgegeben - "No Match". Die Abfrage drei prüft die Parameterwerte beim Abgleich des Suchwerts. Die Parameter von Comp1 und Comp2 sind daher nicht der "Suche", daher werden die Ergebnisse von iftrue1 und iftrue2 übersprungen. Der Zufall befindet sich im dritten Vergleichsvergleich des Comp3-Elements (Position des Parameters 6) und der IFTRUE3-Wert (Parameter 7) wird zurückgegeben, der 'true3' ist. Da der Zufall ergibt, werden nicht mehr Berechnungen erstellt. Das heißt, trotz der Tatsache, dass der Wert von comp4 (Parameter 8) auch mit dem expr1 zusammenfällt - wird dieser Ausdruck niemals berechnet, da der Zufall im vorherigen Vergleich gefunden wurde.

Fallausdruck

Alle Programmiersprachen der dritten und der vierten Generation implementieren die Falldesign. Wie die Decode-Funktion können Sie mit dem Fallausdruck if-then-andere Logik implementieren. Es stehen zwei Optionen zur Verwendung des Fallausdrucks zur Verfügung. Einfacher Fallausdruck setzt das Quellelement, um einmal zu vergleichen, und listet dann alle auf die notwendigen Bedingungen Prüft. Der komplexe (gesuchte) Fall berechnet beide Bediener für jeden Zustand.

Der Fallausdruck hat drei obligatorische Parameter. Die Ausdrucksyntax hängt vom Typ ab. Für einen einfachen Ausdrucksfall sieht er aus

CASE SEARCH_EXPR.

Wenn damals damals_expr1 dann iftrue1

}

Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.