/*Cross apply 與Outer apply的真正用法是怎么樣的?
他們與inner join 與Left join 的區別是什么,能用一個簡單案例說明下嗎,十分感謝
以下的我模擬測驗了下Cross apply 與inner join 類似,Outer apply相當于左關聯*/
Declare @Studient table (PersonId varchar(50),PersonName Nvarchar(50))
Declare @Score table (PersonId varchar(50),Subject Nvarchar(50),Score INT)
INSERT INTO @Studient
SELECT 'A01','張三' union all
SELECT 'A02','李四' union all
SELECT 'A05','王五'
INSERT INTO @Score
SELECT 'A01','語文',90 union all
SELECT 'A02','數學',95 union all
SELECT 'A03','英語',100
---CROSS APPLY 相當于 SELECT * FROM @Studient A INNER JOIN @Score B ON B.PersonId=A.PersonId
SELECT * FROM @Studient A
CROSS APPLY
(SELECT * FROM @Score B WHERE B.PersonId=A.PersonId) C
/*
PersonId PersonName PersonId Subject Score
A01 張三 A01 語文 90
A02 李四 A02 數學 95
*/
--outer apply 相當于LEFT JOIN
SELECT * FROM @Studient A
outer apply(SELECT * FROM @Score B WHERE B.PersonId=A.PersonId) C
/*
PersonId PersonName PersonId Subject Score
A01 張三 A01 語文 90
A02 李四 A02 數學 95
A05 王五 NULL NULL NULL
*/
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/229599.html
標籤:基礎類
上一篇:求助
