Die Funktion decode() ist eine der leistungsstärksten Funktionen in ORACLE PL/SQL. Derzeit bietet nur ORACLEs SQL diese Funktion, und die SQL-Implementierungen anderer Datenbankhersteller verfügen noch nicht über diese Funktion. In diesem Artikel werden hauptsächlich relevante Informationen zur Verwendung der Dekodierungsfunktion in Oracle vorgestellt. Freunde, die sie benötigen, können darauf zurückgreifen.
Bedeutungserklärung:
decode(condition, value 1, return value 1, value 2, return value 2,... value n, return Wert n, Standardwert)
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 decode(字段或字段的运算,值1,值2,值3)
Das Ergebnis dieser Funktion ist, dass, wenn der Wert des Feldes oder der Feldoperation gleich dem ist Wert 1, die 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 die Verwendung bestimmter SQL-Anweisungen erheblich :
1. Größen vergleichen
select decode(sign(variable 1-variable 2),-1, variable 1, variable 2) from dual; Die Funktion sign() gibt 0, 1 bzw. -1 zurück, je nachdem, ob ein Wert 0, eine positive Zahl oder eine negative Zahl istZum Beispiel: Variable 1=10, Variable 2=20Dann gibt sign(Variable 1-Variable 2) -1 zurück, und das Dekodierungsergebnis ist „Variable 1“, wodurch der Zweck erreicht wird, einen kleineren Wert anzunehmen. 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. Die Decode-Funktion ist in der tatsächlichen Entwicklung sehr nützlich In Kombination mit der Lpad-Funktion erfahren Sie, wie Sie automatisch 1 zum Wert des Primärschlüssels hinzufügen und 0 davor hinzufügendir-Wert Wenn er 1 ist, wird er zu 0, wenn er 0 ist, wird er zu 1
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis eg: select decode(dir,1,0,1) from a1_intervalIch möchte beispielsweise die Anzahl der Jungen und Mädchen in einer bestimmten Klasse abfragen? Normalerweise schreiben wir so:
Wenn Sie sie zusammen anzeigen möchten, müssen Sie sie vereinigen, was zu mühsam ist
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;Verwenden Sie die Dekodierung, Sie benötigen nur einen Satz
Verwandte Empfehlungen:
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表 eg: 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; vinson
Die PHP-Methode json_decode kann keine speziellen Fragezeichen analysieren
Wie PHP json_decode ohne Escape implementiert Einführung in die chinesische Methode
Vergleichen Sie json_encode und den Unterschied zwischen json_decode
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der Dekodierfunktion in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!