Rumah > pangkalan data > Oracle > Apakah kegunaan dengan seperti dalam oracle

Apakah kegunaan dengan seperti dalam oracle

WBOY
Lepaskan: 2022-02-28 10:57:20
asal
26984 orang telah melayarinya

Dalam Oracle, pernyataan "dengan sebagai" adalah bersamaan dengan mencipta jadual sementara dan meletakkan hasil perantaraan dalam pernyataan dalam ruang jadual sementara Anda juga boleh menggunakan pernyataan ini untuk mentakrifkan berbilang jadual sementara ialah "dengan temptablename([field list]) as (select ...)".

Apakah kegunaan dengan seperti dalam oracle

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Apakah penggunaan dengan seperti dalam oracle?

Klausa dengan sebagai dalam pertanyaan Oracle adalah bersamaan dengan mencipta jadual sementara dan meletakkan beberapa hasil perantaraan dalam pernyataan dalam ruang jadual sementara. Namakan subquery dalam pertanyaan dan letakkannya di hadapan pernyataan SELECT. Sintaksnya adalah seperti berikut:

with temptablename([字段列表]) as (select ...)
select ...
Salin selepas log masuk

Anda juga boleh menggunakan klausa dengan sebagai untuk mentakrifkan berbilang jadual sementara Apabila mencipta berbilang jadual sementara, jadual sementara seterusnya boleh mengakses jadual sementara yang dibina sebelumnya. Sintaks adalah seperti berikut:

with
temptablename1([字段列表]) as (select ...),
temptablename2([字段列表]) as (select ...)
select ...
Salin selepas log masuk

Penerangan:

(1) Jadual sementara yang dibuat menggunakan klausa dengan sebagai akan dihapuskan selepas pertanyaan pengambilan selesai.

(2) Apabila mencipta berbilang jadual sementara, yang terakhir boleh mengakses jadual sementara yang telah dibina sebelum ini.

(3) Apabila pertanyaan mempunyai berbilang subkueri yang sama, klausa dengan sebagai biasanya digunakan, kerana hasil subkueri disimpan dalam jadual sementara memori dan kecekapan pelaksanaan adalah tinggi.

Contoh penggunaan

Pertanyaan jabatan mana yang mempunyai jumlah gaji lebih tinggi daripada purata gaji semua jabatan:

1 >

Kod dan hasil pertanyaan adalah seperti berikut:

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
Salin selepas log masuk
Dalam contoh ini, dua subkueri yang sama muncul dalam satu pertanyaan.

2. Gunakan dengan sebagai

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
Salin selepas log masuk
Ia boleh dilihat daripada perbandingan dua pertanyaan yang menggunakan klausa dengan sebagai boleh memudahkan pernyataan pertanyaan dan meningkatkan kelajuan pertanyaan.

Tutorial yang disyorkan: "

Tutorial Video Oracle"

Atas ialah kandungan terperinci Apakah kegunaan dengan seperti dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan