OUTER APPLY ist ein leistungsstarker Operator in SQL, der es Ihnen ermöglicht, Zeilen in einer Tabelle mit Zeilen in einer anderen Tabelle zu verknüpfen. Obwohl es INNER JOIN ähnelt, bietet es in bestimmten Situationen einzigartige Funktionen.
Hier sind einige Beispiele aus der Praxis, wie sich OUTER APPLY bewährt hat:
Fragen Sie die ersten N Zeilen nach Gruppe ab:
Beispiel: Rufen Sie die ersten beiden Parameter jeder gespeicherten Prozedur ab.
<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>
Tabellenwertfunktion aufrufen:
Beispiel: Führen Sie eine Tabellenwertfunktion für jede Zeile in der äußeren Abfrage aus.
<code class="language-sql">SELECT * FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle);</code>
Spaltenalias wiederverwenden:
Beispiel: Spaltenaliase wiederverwenden, um mehrere Berechnungen durchzuführen.
<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>
Mehrere Spaltensätze umkehren:
Beispiel: Daten aus einer Tabelle mit denormalisierter Struktur umkehren.
<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>
Das obige ist der detaillierte Inhalt vonWann und wie wird OUTER APPLY in SQL verwendet: Beispiele aus der Praxis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!