OUTER APPLY는 한 테이블의 행을 다른 테이블의 행과 연결할 수 있는 강력한 SQL 연산자입니다. INNER JOIN과 유사해 보이지만 특정 상황에서 고유한 기능을 제공합니다.
다음은 OUTER APPLY의 가치를 입증한 실제 사례입니다.
그룹별로 처음 N개 행 쿼리:
예: 각 저장 프로시저의 처음 두 매개변수를 검색합니다.
<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>
열 별칭 재사용:
예: 열 별칭을 재사용하여 여러 계산을 수행합니다.
<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 ); SELECT Id, Foo, Bar, GrpName FROM T CROSS APPLY (VALUES('1', Foo1, Bar1), ('2', Foo2, Bar2), ('3', Foo3, Bar3)) V(GrpName, Foo, Bar);</code>
위 내용은 SQL에서 OUTER APPLY를 사용하는 시기와 방법: 실제 사례?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!