In Oracle wird die Funktion decode() verwendet, um den Eingabewert mit der Parameterliste in der Funktion zu vergleichen und einen entsprechenden Wert basierend auf dem Eingabewert zurückzugeben. Die Syntax lautet „decode(condition, value 1, return value 1 , Wert 2, Rückgabewert 2,...Wert n, Rückgabewert n, Standardwert)“.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.
Oracle-Funktionsdecodierung:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值);
Dies ist der Ausdruck von Decodierung.
DECODE()-Funktion, die den Eingabewert mit der Parameterliste in der Funktion vergleicht und einen entsprechenden Wert basierend auf dem Eingabewert zurückgibt. Die Parameterliste einer Funktion besteht aus mehreren numerischen Werten und den entsprechenden Ergebniswerten. Mehrere ordinale gerade Formen. Wenn die Übereinstimmung mit einer der tatsächlichen Parametersequenzen fehlschlägt, verfügt die Funktion natürlich auch über einen Standardrückgabewert.
Die Bedeutung dieser Funktion ist wie folgt:
IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF
dekodieren (Feld oder Feldoperation, Wert 1, Wert 2, Wert 3)
Das Ergebnis dieser Funktion ist, dass der Wert des Feldes oder der Feldoperation gleich ist zu Wert 1, Diese Funktion gibt Wert 2 zurück, andernfalls gibt sie Wert 3 zurück.
Natürlich können Wert 1, Wert 2 und Wert 3 auch Ausdrücke sein. Diese Funktion vereinfacht bestimmte SQL-Anweisungen erheblich. Verwendungsmethode:
1. Größe vergleichen
select decode(sign(variable 1-variable 2),-1, variable 1, variable 2) from dual --Nehmen Sie den kleineren Wert
sign() gibt die Funktion jeweils zurück, je nachdem, ob ein Wert 0 ist, eine positive Zahl oder eine negative Zahl 0, 1, -1
Zum Beispiel:
Variable 1=10, Variable 2=20
Dann gibt sign(Variable 1-Variable 2) -1 zurück und das Dekodierungsergebnis ist „ Variable 1", der kleinere Wert. Wertzweck.
2. Diese Funktion wird in SQL-Anweisungen verwendet. Die Funktion wird wie folgt eingeführt:
Die Dekodierfunktion ähnelt einer Reihe verschachtelter IF-THEN-ELSE-Anweisungen. base_exp wird nacheinander mit vergleichen1, vergleichen2 usw. verglichen. Wenn base_exp mit dem i-ten Vergleichselement übereinstimmt, wird der i-te entsprechende Wert zurückgegeben. Wenn base_exp mit keinem Vergleichswert übereinstimmt, wird der Standardwert zurückgegeben. Jeder Vergleichswert wird nacheinander ausgewertet. Wenn eine Übereinstimmung gefunden wird, werden die verbleibenden Vergleichswerte (falls vorhanden) nicht erneut ausgewertet. Ein NULL-base_exp wird als äquivalent zu einem NULL-Vergleichswert angesehen. Bei Bedarf wird jeder Vergleichswert in denselben Datentyp wie der erste Vergleichswert konvertiert, der auch der Rückgabewerttyp ist.
Dekodierungsfunktion ist in der tatsächlichen Entwicklung sehr nützlich
In Kombination mit der Lpad-Funktion, wie man automatisch 1 zum Wert des Primärschlüssels hinzufügt und 0 davor hinzufügt
wählen Sie LPAD(decode(count(record number),0,1 ,max(to_number (Datensatznummer)+1)),14,'0') Datensatznummer von tetdmis
eg:
select decode(dir,1,0,1) from a1_interval
dir Der Wert ist 1 und ändert sich in 0, und wenn er 0 ist, wird er zu 1
Zum Beispiel möchte ich die Jungen in einer bestimmten Klasse und die Anzahl der Mädchen abfragen?
Normalerweise schreiben wir so:
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;
Wenn Sie sie zusammen anzeigen möchten, müssen Sie sie zusammenführen, was zu mühsam ist
Um die Dekodierung zu verwenden, benötigen Sie nur einen Satz.
Wählen Sie Dekodierung (Geschlecht, männlich, 1, 0), Dekodierung (Geschlecht, weiblich, 1, 0) aus der Tabelle
3 und sortieren Sie nach, um eine bestimmte Sortierung der Zeichenspalten durchzuführen
Sie können auch Decode in Order by verwenden.
Beispiel: Die Tabelle table_subject hat die Spalte subject_name. Es ist erforderlich, sie in der Reihenfolge Sprache, Nummer und Fremdsprache zu sortieren. Zu diesem Zeitpunkt können Sie Decode problemlos verwenden, um die Anforderungen zu erfüllen.
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
Empfohlenes Tutorial: „
Oracle Video TutorialDas obige ist der detaillierte Inhalt vonWas ist die Verwendung von Decodierung in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!