Maison >base de données >tutoriel mysql >Quand utiliser CROSS APPLY ou OUTER APPLY en SQL ?
Scénarios pratiques d'application de CROSS APPLY et OUTER APPLY en SQL
Les opérateurs OUTER APPLY et CROSS APPLY dans SQL fournissent des opérations de données flexibles et l'exécution de requêtes complexes. Voici quelques cas d'utilisation réels montrant quand utiliser chaque opérateur :
APPLICATION CROSS
<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>
<code class="language-sql">SELECT * FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)</code>
APPLICATION EXTERNE
<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>
<code class="language-sql">CREATE TABLE T ( Id INT PRIMARY KEY, Foo1 INT, Bar1 INT, Foo2 INT, Bar2 INT, Foo3 INT, Bar3 INT );</code>
Utiliser la syntaxe VALUES (SQL Server 2008) :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!