Introduktion till Oracle sql-avkodning
I det här avsnittet kommer vi att diskutera om Oracle-avkodningsbearbetning som är en mycket viktig aspekt av Oracle sql-satsen
Oracle avkodning är metoden i Oracle-databasen för att omvandla datavärden från ett värde till ett annat som är bättre att förstå. Oracle Decode transformerar datavärden vid hämtningstidpunkten.
Det är en typ av Om så annat för bearbetningen
Kodblocket för Oracle sql Decode finns nedan
avkoda(uttryck eller kolumnnamn, matchning, resultat [,matchning, resultat]...[,standard] )
Här är betydelsen av termer i ovanstående kod
a) uttryck eller kolumn är värdet som ska jämföras
b) matchning är värdet som jämförs med uttryck
c) resultatet är värdet som returneras, om uttryck är lika med matchning
d) är standard valfritt. Om inga matchningar hittas kommer avkodningen att returnera standard. Om standard utelämnas kommer avkodningssatsen att returnera NULL (inga matchningar hittades).
Exempel
välj |
Här är algoritmen för att bättre förstå det
1) Oracle hämta kolumnvärdet för faskod
2) om faskod ='P' sedan väntande
3) om faskod ='C' sedan slutförd
4) om faskod ='T' sedan avslutad
5) om Faskod ='S' sedan Standby
6) Om Faskoden inte är någon av ovanstående returnerar avkodningen Okänd
7) Om standard inte finns tillgänglig det ger null
Observera att Oracle-avkodning börjar med att ange kolumnnamnet eller uttrycket följt av en uppsättning matchade par av transformationsvärden. I slutet av avkodningssatsen hittar vi ett standardvärde. Standardvärdet talar om för avkodning vad som ska visas om ett kolumnvärde inte finns i den parade listan.
Vi skulle kunna säga algoritmen så här
if (expr ==search1) return(result1); elseif (expr ==search2) return( resultat2); …elseif (expr ==sökn) return(resultn); else return(default); |
Några fler punkter att komma ihåg för Oracle Decode
1) I en DECODE-funktion anser Oracle att två nollor är likvärdiga. Om expr är null, returnerar Oracle resultatet av den första sökningen som också är null.
SQL> SELECT decode(null,null,1,0) FROM dual;
DECODE(NULL,NULL,1,0)
———————
1
2) Det maximala antalet komponenter i DECODE-funktionen, inklusive expr, sökningar, resultat och standard, är 255.
3) Oracle konverterar automatiskt värdena för uttryck och compare_value till datatypen för det första compare_value. Även datatypen för return_value konverteras till datatypen för det första return_value. Om det första resultatet har datatypen CHAR eller om det första resultatet är null, konverterar Oracle returvärdet till datatypen VARCHAR2
Hur man läser avkodning i Oracle
vi kan läsa decode-satsen som if-else if-sats. Det första argumentet i avkodningssatsen kommer vanligtvis att vara någon kolumn där datatransformation behövs. Argumentet efter det kommer att jämföra värdena för det första argumentet med det
Vanliga frågor om Oracle sql Decode-bearbetning
(1)Vi har sett att "expr" likställs med specificerade värden. Kan vi använda olikhetsoperatorer som> eller
Låt oss ta ett exempel
SELECT DECODE(lön,<50 000, sal + 1000, sal + 500) Final_salary FROM emp;
ERROR at line 2
ORA-00936:missing expression
Så det kan vi inte använda. Vi måste använda en fallbeskrivning för att göra det. eller så kan vi teckenfunktion i avkoda för att uppnå det
SELECT DECODE(tecken(lön- 50000), -1,sal + 1000, sal + 500) Final_salary FROM emp;
I grund och botten måste vi konvertera vår krav på någon formel som kan utvärderas till något värde
SELECT col1,col2 decode( abs(col1-col2), 0, ‘col1 =col2’,Col1-col2, ‘col1> col2′,’col1
CASE kan fungera som en PL/SQL-konstruktion men DECODE används endast i SQL-satser. CASE kan användas som en parameter för en funktion/procedur.
CASE förväntar sig datatypkonsistens, DECODE gör det inte
CASE förväntar sig datatyp konsistens, DECODE fungerar inte
DECODE kan bara fungera med skalära värden men CASE kan fungera med logiska operatorer, predikat och sökbara underfrågor.
Ja Det maximala antalet komponenter i DECODE-funktionen, inklusive expr, sökningar, resultat och standard, är 255.
Relaterade länkar
Oracle-dokumentation om avkodning
hur man skriver SQL-frågor
Grundläggande SQL-uttalande
Oracle Case Statement förklaras med tips och exempel
SQL-handledning