In diesem Artikel werden hauptsächlich Beispiele für die Verwendung der Dekodierungsfunktion in Oracle vorgestellt. Ich hoffe, Sie können die Verwendung der Dekodierungsfunktion beherrschen, nachdem Sie sie gemeinsam erlernt haben.
Mehrere Verwendungsmöglichkeiten von Decodierung
1: Verwenden Sie Decodierung, um festzustellen, ob die Zeichenfolgen gleich sind
DECODE(value, if1, then1,if2,then2,if3,then3,...,else)
bedeutet
WENN Bedingung = Wert 1 DANN
RETURN(Wert 1)
ELSIF-Bedingung=Wert 2 DANN
RETURN(Wert 2)
……
ELSIF-Bedingung=Wert n DANN
RETURN(Wert 3)
ELSE
RETURN (Standard)
END IF
SQL-Test
select empno,decode(empno,7369,'smith',7499,'allen',7521,'ward',7566,'jones','unknow') as name from emp where rownum<=10
Ausgabeergebnis
7369 smith 7499 allen 7521 ward 7566 jones 7654 unknow 7698 unknow 7782 unknow 7788 unknow 7839 unknow 7844 unknow
2: Dekodieren verwenden, um Größen zu vergleichen
select decode(sign(var1-var2) ,- 1,var 1,var2) aus der Funktion dual
sign() gibt 0, 1, -1 zurück, je nachdem, ob ein Wert 0, positiv oder negativ ist
select decode(sign(100-90),-1,100,90) from dual100 -90=10>0 wird zurückgegeben 1, also ist der Endwert der Dekodierfunktion 90
90Wie auch immer
select decode(sign(100-90),1,100,90) from dual100-90=10>0 gibt 1 zurück, das Beurteilungsergebnis ist 1, die erste Variable 100 wird zurückgegeben und das endgültige Ausgabeergebnis ist 100
100
3: Verwenden Sie die Dekodierfunktion, um
Ein Gehalt über 5000 ist ein hohes Gehalt, ein Gehalt zwischen 3000 und 5000 ein mittleres Gehalt und ein Gehalt unter 3000 Niedriges Gehalt
SELECT ename,sal, DECODE(SIGN(sal - 5000), 1, 'high sal', 0, 'high sal', - 1, DECODE(SIGN(sal - 3000), 1, 'mid sal', 0, 'mid sal', - 1, DECODE(SIGN(sal - 1000), 1, 'low sal', 0, 'low sal', - 1, 'low sal'))) FROM emp
SMITH 800 low sal ALLEN 1600 low sal WARD 1250 low sal JONES 2975 low sal MARTIN 1250 low sal BLAKE 2850 low sal CLARK 2450 low sal SCOTT 3000 mid sal KING 5000 high sal TURNER 1500 low sal ADAMS 1100 low sal JAMES 950 low sal FORD 3000 mid sal MILLER 1300 low sal4: Verwenden Sie die Dekodierung, um die Zeilen- und Spaltenkonvertierung von Tabellen oder Ansichten zu realisieren
SQL-Test
Die Ausgabeergebnisse lauten wie folgt
SELECT SUM(DECODE(ENAME,'SMITH',SAL,0)) SMITH, SUM(DECODE(ENAME,'ALLEN',SAL,0)) ALLEN, SUM(DECODE(ENAME,'WARD',SAL,0)) WARD, SUM(DECODE(ENAME,'JONES',SAL,0)) JONES, SUM(DECODE(ENAME,'MARTIN',SAL,0)) MARTIN FROM EMP
SMITH ALLEN WARD JONES MARTIN 800 1600 1250 2975 12505: Verwenden Sie die Dekodierfunktion, um nach Zeichenfolgen zu suchen Ausdrücke
dekodieren (Ausdruck, Suche_1, Ergebnis_1, Suche_2, Ergebnis_2, ...., Suche_n, Ergebnis_n, Standard)
SELECT ENAME, SAL, DECODE(INSTR(ENAME, 'S'), 0, '不含有s', '含有s') AS INFO FROM EMPDekodierungsfunktion ist in der tatsächlichen Entwicklung sehr nützlich
SMITH 800 含有s ALLEN 1600 不含有s WARD 1250 不含有s JONES 2975 含有s MARTIN 1250 不含有s BLAKE 2850 不含有s CLARK 2450 不含有s SCOTT 3000 含有s KING 5000 不含有s TURNER 1500 不含有s ADAMS 1100 含有s JAMES 950 含有s FORD 3000 不含有s MILLER 1300 不含有sKombiniert mit der Lpad-Funktion, wie automatisch 1 zum Wert des Primärschlüssels hinzugefügt und 0 davor hinzugefügt wird
select count( *) aus der Tabelle mit Geschlecht=männlich;
wählen Sie count(*) aus der Tabelle mit Geschlecht=weiblich
Wenn Sie sie zusammen anzeigen möchten, müssen Sie sie zusammenführen, was auch der Fall ist mühsam
select sum(decode(siteno,'LT',1,0)),sum(decode(siteno,'SZ',1,0)) from facd605; select sum(case siteno when 'LT' then 1 else 0 end),sum(case siteno when 'SZ' then 1 else 0 end) from facd605;
Verwandte Empfehlungen:
Dinge, auf die Sie bei der json_decode-Funktion in PHP achten solltenDetaillierte Erläuterung der häufig verwendeten Funktion Trunc von Oracle
Detaillierte Erläuterung des Beispiels für eine benutzerdefinierte Oracle-Split-Funktion
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Dekodierfunktion in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!