Rumah >pangkalan data >tutorial mysql >Bila dan Bagaimana Menggunakan OUTER APPLY dalam SQL: Contoh Dunia Sebenar?

Bila dan Bagaimana Menggunakan OUTER APPLY dalam SQL: Contoh Dunia Sebenar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-10 08:33:42181semak imbas

When and How to Use OUTER APPLY in SQL: Real-World Examples?

Contoh aplikasi praktikal OUTER APPLY dalam SQL

OUTER APPLY ialah pengendali berkuasa dalam SQL yang membolehkan anda mengaitkan baris dalam satu jadual dengan baris dalam jadual lain. Walaupun ia kelihatan serupa dengan INNER JOIN, ia menyediakan fungsi unik dalam situasi tertentu.

Kes penggunaan untuk OUTER APPLY

Berikut ialah beberapa contoh kehidupan sebenar OUTER APPLY yang membuktikan nilainya:

Soal N baris pertama mengikut kumpulan:

Contoh: Dapatkan semula dua parameter pertama setiap prosedur yang disimpan.

<code class="language-sql">SELECT pr.name, pa.name
FROM sys.procedures pr
OUTER APPLY (
  SELECT TOP 2 *
  FROM sys.parameters pa
  WHERE pa.object_id = pr.object_id
  ORDER BY pr.name
) pa
ORDER BY pr.name, pa.name;</code>

Panggil fungsi bernilai jadual:

Contoh: Laksanakan fungsi bernilai jadual untuk setiap baris dalam pertanyaan luar.

<code class="language-sql">SELECT *
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle);</code>

Gunakan semula alias lajur:

Contoh: Gunakan semula alias lajur untuk melakukan berbilang pengiraan.

<code class="language-sql">SELECT number,
  doubled_number,
  doubled_number_plus_one
FROM master..spt_values
CROSS APPLY (SELECT 2 * CAST(number AS BIGINT)) CA1(doubled_number)
CROSS APPLY (SELECT doubled_number + 1) CA2(doubled_number_plus_one);</code>

Terbalikkan beberapa set lajur:

Contoh: Terbalikkan data daripada jadual dengan struktur nyahnormal.

<code class="language-sql">CREATE TABLE T
(
  Id INT PRIMARY KEY,
  Foo1 INT, Bar1 INT,
  Foo2 INT, Bar2 INT,
  Foo3 INT, Bar3 INT
);

SELECT Id,
  Foo,
  Bar,
  GrpName
FROM T
CROSS APPLY (VALUES('1', Foo1, Bar1),
                     ('2', Foo2, Bar2),
                     ('3', Foo3, Bar3)) V(GrpName, Foo, Bar);</code>

Atas ialah kandungan terperinci Bila dan Bagaimana Menggunakan OUTER APPLY dalam SQL: Contoh Dunia Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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