Heim > Datenbank > Oracle > Hauptteil

Was ist die Verwendung von with wie in Oracle?

WBOY
Freigeben: 2022-02-28 10:57:20
Original
26939 Leute haben es durchsucht

In Oracle entspricht die „with as“-Anweisung dem Erstellen einer temporären Tabelle und dem Platzieren der Zwischenergebnisse in einer Anweisung im temporären Tabellenbereich. Sie können diese Anweisung auch zum Definieren mehrerer temporärer Tabellen verwenden. Die Syntax lautet „with temptablename“. ([Feldliste]) als (wählen ...)“.

Was ist die Verwendung von with wie in Oracle?

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

Was ist die Verwendung von with as in Oracle?

Die with as-Klausel in der Oracle-Abfrage entspricht dem Erstellen einer temporären Tabelle und dem Platzieren einiger Zwischenergebnisse in einer Anweisung im temporären Tabellenbereich. Benennen Sie die Unterabfrage in der Abfrage und stellen Sie sie an den Anfang der SELECT-Anweisung. Die Syntax lautet wie folgt:

with temptablename([字段列表]) as (select ...)
select ...
Nach dem Login kopieren

Sie können auch die with as-Klausel verwenden, um mehrere temporäre Tabellen zu definieren. Beim Erstellen mehrerer temporärer Tabellen können die nachfolgenden temporären Tabellen auf die zuvor erstellten temporären Tabellen zugreifen. Die Syntax lautet wie folgt:

with
temptablename1([字段列表]) as (select ...),
temptablename2([字段列表]) as (select ...)
select ...
Nach dem Login kopieren

Beschreibung:

(1) Die mit der with as-Klausel erstellte temporäre Tabelle wird gelöscht, nachdem die Abrufabfrage abgeschlossen ist.

(2) Beim Erstellen mehrerer temporärer Tabellen können diese auf die zuvor erstellten temporären Tabellen zugreifen.

(3) Wenn eine Abfrage mehrere identische Unterabfragen hat, wird im Allgemeinen die with as-Klausel verwendet, da die Ergebnisse der Unterabfrage in der temporären Speichertabelle gespeichert werden und die Ausführungseffizienz hoch ist.

Verwendungsbeispiel

Fragen Sie ab, welche Abteilungen insgesamt höher sind als das Durchschnittsgehalt aller Abteilungen:

1. Ohne as

Die Code- und Abfrageergebnisse lauten wie folgt:

SELECT deptno,total_sal
FROM (SELECT deptno,sum(sal) as total_sal
      FROM employee
      GROUP BY deptno) temp1
WHERE total_sal>(
      SELECT avg(total_sal)
      FROM (SELECT deptno,sum(sal) as total_sal
      FROM employee
      GROUP BY deptno)
10:46:44  10        );
    DEPTNO  TOTAL_SAL
---------- ----------
    20 5701632000
Elapsed: 00:00:02.33
Nach dem Login kopieren

In diesem Beispiel ist es In einer Abfrage erscheinen zwei identische Unterabfragen.

2. Verwendung mit as

10:45:47 SQL> 
WITH tempA AS
     (SELECT deptno,sum(sal) as total_sal
      FROM employee
      GROUP BY deptno)
SELECT *
FROM tempA
WHERE total_sal>(
     SELECT AVG(total_sal)
     FROM tempA
10:46:02  10       );
    DEPTNO  TOTAL_SAL
---------- ----------
    20 5701632000
Elapsed: 00:00:01.42
Nach dem Login kopieren

Aus dem Vergleich der beiden Abfragen geht hervor, dass die Verwendung der with as-Klausel die Abfrageanweisung vereinfachen und die Abfragegeschwindigkeit verbessern kann.

Empfohlenes Tutorial: „Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von with wie in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage