Rumah >pangkalan data >tutorial mysql >Bagaimanakah OUTER dan CROSS APPLY Boleh Meningkatkan Pertanyaan SQL dalam Aplikasi Dunia Sebenar?
Aplikasi Praktikal OUTER dan CROSS APPLY dalam SQL Query
OUTER dan CROSS APPLY meningkatkan kecekapan pertanyaan SQL dan kebolehbacaan dengan ketara dalam pelbagai aplikasi dunia sebenar. Berikut ialah beberapa contoh ilustrasi:
1. Rekod N Teratas bagi setiap Kategori:
Menggunakan APPLY menawarkan kelebihan prestasi berbanding pertanyaan bersarang apabila mengekstrak baris N teratas untuk setiap kumpulan. Pertimbangkan contoh ini:
<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>
2. Menggunakan Fungsi Bernilai Jadual:
CROSS APPLY memudahkan aplikasi fungsi bernilai jadual pada baris individu 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>
3. Penggunaan Semula Alias yang Cekap:
CROSS APPLY membenarkan penggunaan semula alias lajur yang berkesan dalam satu pertanyaan:
<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>
4. Memperkemas Lajur Nyahpaut:
APPLY menyediakan penyelesaian yang elegan untuk menyahpaut berbilang kumpulan lajur daripada jadual dengan struktur tidak normal:
<code class="language-sql">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 Bagaimanakah OUTER dan CROSS APPLY Boleh Meningkatkan Pertanyaan SQL dalam Aplikasi Dunia Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!