Inhaltsverzeichnis
1. Nach einem einzelnen Feld sortieren
2. Nach mehreren Feldern sortieren
3. Sortieren nach Teilzeichenfolge
4. TRANSLATE
5. Sortieren Sie nach Buchstaben in einer gemischten Folge aus Zahlen und Buchstaben.
6. Handhabung der Sortierung von Nullwerten
7. 根据条件取不同列中的值来排序
Heim Datenbank Oracle Lassen Sie uns über die verschiedenen Sortierungen von ORDER BY in ORACLE sprechen

Lassen Sie uns über die verschiedenen Sortierungen von ORDER BY in ORACLE sprechen

Mar 17, 2022 pm 06:49 PM
oracle

Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle, in dem hauptsächlich Probleme im Zusammenhang mit der Mehrfachsortierung von ORDER BY vorgestellt werden, einschließlich der Sortierung nach einem einzelnen Feld, der Sortierung nach mehreren Feldern, der Sortierung nach Teilzeichenfolgen usw. Ich hoffe, es hilft allen.

Lassen Sie uns über die verschiedenen Sortierungen von ORDER BY in ORACLE sprechen

Empfohlenes Tutorial: „Oracle Learning Tutorial

1. Nach einem einzelnen Feld sortieren

Aufsteigende Reihenfolge: ORDER BY ASC (Standard)

Absteigende Reihenfolge: ORDER BY DESC

Die tatsächlichen Abfrageergebnisse zurückgeben in der angegebenen Reihenfolge Beim Extrahieren von Daten oder beim Erstellen von Berichten ist es im Allgemeinen erforderlich, diese in einer bestimmten Reihenfolge anzuzeigen, beispielsweise wenn Sie die Informationen der in der Einheit beschäftigten Mitarbeiter anzeigen möchten.

SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY hiredate ASC;
Nach dem Login kopieren

Viele Leute können diese Art von Anweisung schreiben, um Abfrageergebnisse zu sortieren, aber zusätzlich zu „ORDER BY Hiredate ASC“ können Sie auch „ORDER BY 3 ASC“ schreiben, was bedeutet, dass nach der dritten Spalte sortiert wird.

SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY 3 ASC;
Nach dem Login kopieren

Wenn der Wert unsicher ist, ist es sehr praktisch, diese Methode zu verwenden. Es ist zu beachten, dass

die Verwendung von Daten zum Ersetzen der Spaltenposition nur in der Order-By-Klausel und nicht an anderer Stelle verwendet werden kann

2. Nach mehreren Feldern sortieren

Was passiert, wenn Sie nach mehreren Spalten sortieren und es zu einer Erhöhung oder Verringerung kommt? Wenn Sie beispielsweise nach Abteilungsnummer in aufsteigender Reihenfolge und nach Gehalt in absteigender Reihenfolge sortieren, gibt es zwei Schlüsselwörter: ASC bedeutet aufsteigende Reihenfolge, DESC bedeutet absteigende Reihenfolge. Daher fügen wir nach Sortieren nach zwei Spalten hinzu und markieren ASC bzw. DESC.

SELECT empno, deptno, sal, ename, job FROM emp ORDER BY 2 ASC, 3 DESC;
Nach dem Login kopieren

Das Folgende wird in Form eines Diagramms eingeführt, wie in der folgenden Abbildung gezeigt, wenn die vorherige Spalte doppelte Werte aufweist (z. B. hat deptno = 10 3 Zeilen mit Daten). ), wird die anschließende Sortierung nur nützlich sein. Dies entspricht der Aufteilung der Daten in mehrere Gruppen anhand der vorherigen Spalten und der anschließenden Sortierung der Daten jeder Gruppe anhand der folgenden Spalten.

3. Sortieren nach Teilzeichenfolge

Eine schnelle Möglichkeit zum Sortieren nach Teilzeichenfolge besteht darin, die Telefonnummer des Kunden in der Reihenfolge der letzten Nummer aufzuzeichnen, sodass Sie den Umfang der Abfrage schnell eingrenzen und die Kundenerkennung verbessern können. . Was sollten Sie tun, wenn Sie auf diese Weise sortieren möchten? Verwenden Sie einfach die Funktion, um die erforderlichen Informationen für die nächsten paar Bits zu erhalten.

SELECT last_name AS 名称,
       phone_number AS 号码,
       salary as 工资,
       substr(phone_number, -4) AS 尾号
  FROM hr.employees
 WHERE rownum < 5
 ORDER BY 4;
Nach dem Login kopieren

Es ist ersichtlich, dass die Daten, solange sie abgefragt werden können, nach den entsprechenden Informationen sortiert werden können.

4. TRANSLATE

Grammatikformat: TRANSLATE (expr, from_string, to_string)

Beispiele sind wie folgt:

SELECT TRANSLATE( &#39;ab 你好 bcadefg&#39;, &#39;abcdefg&#39;, &#39;1234567&#39; ) AS NEW_STR FROM DUAL;
Nach dem Login kopieren

from_string und to_string sind in Zeicheneinheiten und die entsprechenden Zeichen werden einzeln ersetzt .

Wenn to_string leer ist, wird ein Nullwert zurückgegeben

SELECT TRANSLATE( &#39;ab 你好 bcadefg&#39;, &#39;abcdefg&#39;, &#39;&#39; ) AS NEW_STR FROM DUAL;
Nach dem Login kopieren

Wenn sich an der entsprechenden Position von to_string keine Zeichen befinden, entfällt das Löschen der in from_string aufgeführten Zeichen.

SELECT TRANSLATE( &#39;ab 你好 bcadefg&#39;, &#39;1abcdefg&#39;, &#39;1&#39; ) AS NEW_STR FROM DUAL;
Nach dem Login kopieren

5. Sortieren Sie nach Buchstaben in einer gemischten Folge aus Zahlen und Buchstaben.

Erstellen Sie zunächst die ANSICHT wie folgt:

CREATE OR REPLACE VIEW V 
as 
SELECT empno || &#39; &#39; || ename AS data FROM emp;
Nach dem Login kopieren
select * from V;
Nach dem Login kopieren

Diese Anforderung ist etwas schwieriger, sehen Sie sich die Buchstaben darin an (Ist es der ursprüngliche Spaltenname)? Erfordert eine alphabetische Reihenfolge darin (Spalte ename).

Dann müssen wir zuerst die Ersetzungsfunktion von Translate verwenden, um die Zahlen und Leerzeichen durch leere Werte zu ersetzen:

SELECt data, translate (data, &#39;- 0123456789&#39;, &#39;-&#39; )AS ename
  FROM v
 ORDER BY 2;
Nach dem Login kopieren

6. Handhabung der Sortierung von Nullwerten

Oracles Standardsortierung von Nullen Werte sind später, was soll ich tun, wenn ich den Nullwert (z. B. emp.comm) vorne anzeigen möchte? Soll ich NVL (comm, -1) verwenden?

SELECT ename, sal, comm, nvl(comm, - 1) order_col FROM emp ORDER BY 4;
Nach dem Login kopieren

也许很多人都是用的这种方法,但这种方法需要对列类型及其中保存的数据有所了解才行,而且保存的数据如果有变化,该语句就要重新维护。
其实可以用关键字 NULLS FIRST和 NULLS LAST。

空值在前

SELECT ename, sal, comm FROM emp ORDER BY 3 NULLS FIRST;
Nach dem Login kopieren

空值在后

SELECT ename, sal, comm FROM emp ORDER BY 3 NULLS LAST;
Nach dem Login kopieren

是不是要方便得多?

7. 根据条件取不同列中的值来排序

有时排序的要求会比较复杂,比如:领导对工资在1000到2000元之间的员工更感兴趣,于是要求工资在这个范围的员工要排在前面,以便优先査看。
对于这种需求,我们可以在查询中新生成一列,用多列排序的方法处理:

SELECT empno AS 编码,
       ename AS 姓名,
       CASE
         WHEN sal > 1000 AND sal < 2000 THEN
          1
         ELSE
          2
       END AS 级别,
       sal AS工资
  FROM emp
 WHERE deptno = 30
 ORDER BY 3, 4;
Nach dem Login kopieren

可以看到,950与2850都排在了后面,也可以不显示级别,直接把 case when放在order by中

SELECT empno AS 编码, ename AS 姓名, sal AS工资
  FROM emp
 WHERE deptno = 30
 ORDER BY CASE
            WHEN sal >= 1000 AND sal < 2000 THEN
             1
            ElSE
             2
          END,
          3;
Nach dem Login kopieren

 

推荐教程:《Oracle教程

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die verschiedenen Sortierungen von ORDER BY in ORACLE sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? May 10, 2024 am 03:27 AM

Der Aufbewahrungszeitraum von Oracle-Datenbankprotokollen hängt vom Protokolltyp und der Konfiguration ab, einschließlich: Redo-Protokolle: Wird durch die maximale Größe bestimmt, die mit dem Parameter „LOG_ARCHIVE_DEST“ konfiguriert wird. Archivierte Redo-Protokolle: Bestimmt durch die maximale Größe, die durch den Parameter „DB_RECOVERY_FILE_DEST_SIZE“ konfiguriert wird. Online-Redo-Logs: nicht archiviert, gehen beim Neustart der Datenbank verloren und der Aufbewahrungszeitraum stimmt mit der Instanzlaufzeit überein. Audit-Protokoll: Wird durch den Parameter „AUDIT_TRAIL“ konfiguriert und standardmäßig 30 Tage lang aufbewahrt.

Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist May 10, 2024 am 01:48 AM

Die Startsequenz der Oracle-Datenbank ist: 1. Überprüfen Sie die Voraussetzungen. 3. Starten Sie die Datenbankinstanz. 6. Überprüfen Sie den Datenbankstatus . Aktivieren Sie den Dienst (falls erforderlich). 8. Testen Sie die Verbindung.

Wie viel Speicher benötigt Oracle? Wie viel Speicher benötigt Oracle? May 10, 2024 am 04:12 AM

Die von Oracle benötigte Speichermenge hängt von der Datenbankgröße, dem Aktivitätsniveau und dem erforderlichen Leistungsniveau ab: zum Speichern von Datenpuffern, Indexpuffern, zum Ausführen von SQL-Anweisungen und zum Verwalten des Datenwörterbuch-Cache. Die genaue Menge hängt von der Datenbankgröße, dem Aktivitätsgrad und dem erforderlichen Leistungsniveau ab. Zu den Best Practices gehören das Festlegen der geeigneten SGA-Größe, die Dimensionierung von SGA-Komponenten, die Verwendung von AMM und die Überwachung der Speichernutzung.

So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle May 09, 2024 pm 09:33 PM

Um die Anzahl der Vorkommen eines Zeichens in Oracle zu ermitteln, führen Sie die folgenden Schritte aus: Ermitteln Sie die Gesamtlänge einer Zeichenfolge. Ermitteln Sie die Länge der Teilzeichenfolge, in der ein Zeichen vorkommt. Zählen Sie die Anzahl der Vorkommen eines Zeichens, indem Sie die Länge der Teilzeichenfolge subtrahieren von der Gesamtlänge.

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers May 10, 2024 am 04:00 AM

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers: Prozessor: Multi-Core, mit einer Hauptfrequenz von mindestens 2,5 GHz. Für große Datenbanken werden 32 Kerne oder mehr empfohlen. Speicher: Mindestens 8 GB für kleine Datenbanken, 16–64 GB für mittelgroße Datenbanken, bis zu 512 GB oder mehr für große Datenbanken oder hohe Arbeitslasten. Speicher: SSD- oder NVMe-Festplatten, RAID-Arrays für Redundanz und Leistung. Netzwerk: Hochgeschwindigkeitsnetzwerk (10 GbE oder höher), dedizierte Netzwerkkarte, Netzwerk mit geringer Latenz. Sonstiges: Stabile Stromversorgung, redundante Komponenten, kompatibles Betriebssystem und Software, Wärmeableitung und Kühlsystem.

So lesen Sie eine DBF-Datei in Oracle So lesen Sie eine DBF-Datei in Oracle May 10, 2024 am 01:27 AM

Oracle kann DBF-Dateien durch die folgenden Schritte lesen: Erstellen Sie eine externe Tabelle und verweisen Sie auf die DBF-Datei.

Wie viel Speicher wird für die Verwendung der Oracle-Datenbank benötigt? Wie viel Speicher wird für die Verwendung der Oracle-Datenbank benötigt? May 10, 2024 am 03:42 AM

Die für eine Oracle-Datenbank erforderliche Speichermenge hängt von der Datenbankgröße, dem Workload-Typ und der Anzahl gleichzeitiger Benutzer ab. Allgemeine Empfehlungen: Kleine Datenbanken: 16–32 GB, mittlere Datenbanken: 32–64 GB, große Datenbanken: 64 GB oder mehr. Weitere zu berücksichtigende Faktoren sind die Datenbankversion, Speicheroptimierungsoptionen, Virtualisierung und Best Practices (Speichernutzung überwachen, Zuweisungen anpassen).

Von Oracle geplante Aufgaben führen den Erstellungsschritt einmal täglich aus Von Oracle geplante Aufgaben führen den Erstellungsschritt einmal täglich aus May 10, 2024 am 03:03 AM

Um in Oracle eine geplante Aufgabe zu erstellen, die einmal täglich ausgeführt wird, müssen Sie die folgenden drei Schritte ausführen: Erstellen Sie einen Job. Fügen Sie dem Job einen Unterjob hinzu und legen Sie seinen Zeitplanausdruck auf „INTERVALL 1 TAG“ fest. Aktivieren Sie den Job.

See all articles