介紹

APPLY 主要用於將某一個子查詢和一個 資料表函式 (Table Function) 做 JOIN 運算,有別於 JOIN 運算,APPLY 不使用 ON 選擇關聯欄位,則是將欄位帶入方式使用。子查詢結果會被當作為 left ,而 資料表函式 當作 right 進行運算。


CROSS APPLY 和 OUTER APPLY 是從 SQL Server 2005 新增的語法,其使用時資料庫相容層級要90。這兩個語法效果等同於 INNER JOIN 與 LEFT OUTER JOIN。



這邊舉一個例子來看看 (範例有一點差,但我們直接看效果)

Employee 資料表內容如下

Id 
Name
Country
1
Duran
Kaohsiung
2
Owen
Taipei
3
Maze
Taichung
4
Bert
Taipei


Dept 資料表內容如下:

Id
Name
Country
1
PM
Taipei
2
DEV 
Taichung
3
DESIGN
Tapei
4
DEV
Taipei
5
SUPPORT
Taichung
6
SUPPORT
Tainan
7
IT
Kaohsiung



首先我們先建立資料表函式


我們使用 CROSS APPLY 語法並看其結果



接下來我們使用 OUTER APPLY




參考資料

使用 APPLY - https://technet.microsoft.com/zh-tw/library/ms175156(v=sql.105).aspx