Heim >Datenbank >Oracle >Was ist die Verwendung von Decodierung in Oracle?

Was ist die Verwendung von Decodierung in Oracle?

WBOY
WBOYOriginal
2022-03-01 10:23:5742944Durchsuche

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)“.

Was ist die Verwendung von Decodierung in Oracle?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

Was ist die Verwendung von Decodierung in Oracle?

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 Tutorial

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn