SQL Server 查詢指令 (5)

基本介紹

教學目標

初步了解 SQL Server 中 APPLY 查詢指令的基本概念。

重點概念

首先 APPLY 運算子通常搭配資料表值函數 (Table-Valued Function,TVF),主要是讓我們針對查詢外部資料表運算式所傳回的每個資料列結果呼叫資料表值函數。

接著外部資料表為左方輸入,衍生資料表或資料表值函數為右方輸入,右方輸入是針對左方輸入的每個資料列進行函數運算,而產生的資料表結果將會合併為最終的輸出。

再來 APPLY 主要有兩種格式,分別為 CROSS APPLY 與 OUTER APPLY,若回傳資料表結果為單筆資料,則 CROSS APPLY 就像 INNER JOIN,OUTER APPLY 就像 LEFT JOIN。

最後 CROSS APPLY 和 OUTER APPLY 的區別主要在於若右方輸入函數運算結果為空,則 CROSS APPLY 合併的結果就不會包括右方輸入函數運算結果,而 OUTER APPLY 合併的結果就會包括右方輸入函數運算結果為 NULL。此外若是採用衍生資料表則建議使用 INNER JOIN 和 LEFT JOIN,APPLY 主要是透過 WHERE 進行連結,JOIN 主要是透過 ON 進行連結。

APPLY 語法:

1
2
3
SELECT <多個欄位>
FROM <外部資料表> AS <別名>
CROSS/OUTER APPLY <衍生資料表或資料表值函數> AS <別名>

相關資源