翻譯|使用教程|編輯:董玉霞|2022-04-26 11:40:36.710|閱讀 217 次
概述:本文將介紹數(shù)據(jù)庫管理工具Navicat for SQL Server中CROSS APPLY 和 OUTER APPLY 查詢。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
本文將介紹數(shù)據(jù)庫管理工具Navicat for SQL Server中CROSS APPLY 和 OUTER APPLY 查詢。
Navicat for SQL Server 中的 JOIN 操作用于聯(lián)接兩個或多個表。但是,在 SQL Server 中,JOIN 操作不能用于將表與表值函數(shù)的輸出聯(lián)接起來,表值函數(shù)是以表的形式返回數(shù)據(jù)。為了連接兩個表表達式,SQL Server 引入了 APPLY 運算符。在本篇文章中,我們將了解 APPLY 運算符與常規(guī) JOIN 的不同之處。
SQL Server 的 APPLY 運算符有兩種變體:CROSS APPLY 和 OUTER APPLY:
CROSS APPLY 運算符僅返回左表表達式(在其最終輸出中)中與右表表達式匹配的那些行。 因此,CROSS APPLY 類似于 INNER JOIN,或者更準確地說,類似于具有相關子查詢的 CROSS JOIN,其隱式聯(lián)接條件為 1=1。
OUTER APPLY 運算符返回左表表達式中的所有行,而不管其與右表表達式的匹配情況。對于右表表達式中沒有相應匹配項的那些行,它在右表表達式的列中返回 NULL 值。 因此,OUTER APPLY 等效于 LEFT OUTER JOIN。
盡管可以使用普通的 JOIN 編寫相同的查詢,但當右側有一個表值表達式并且你希望為左側表表達式中的每一行計算此表值表達式時,就需要使用 APPLY。此外,在某些情況下,使用 APPLY 運算符可以提高查詢性能。
通過一些示例進一步探索 APPLY 運算符。
樣本數(shù)據(jù)
在Navicat for SQL Server最新版本中執(zhí)行查詢以創(chuàng)建的兩個新表。這是 Department 表的設計:
這是 Employee 表的設計:
在 Navicat 查詢編輯器中執(zhí)行以下 SQL 以填充表:
INSERT [Department] ([DepartmentID], [Name]) VALUES (1, N'Engineering') INSERT [Department] ([DepartmentID], [Name]) VALUES (2, N'Administration') INSERT [Department] ([DepartmentID], [Name]) VALUES (3, N'Sales') INSERT [Department] ([DepartmentID], [Name]) VALUES (4, N'Marketing') INSERT [Department] ([DepartmentID], [Name]) VALUES (5, N'Finance') GO INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (1, N'Orlando', N'Gee', 1 ) INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (2, N'Keith', N'Harris', 2 ) INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (3, N'Donna', N'Carreras', 3 ) INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (4, N'Janet', N'Gates', 3 )
這是一個由兩部分組成的查詢:第一個查詢從 Department 表中選擇數(shù)據(jù),并使用 CROSS APPLY 為 Department 表的每條記錄對 Employee 表求值;第二個查詢只是將 Department 表與 Employee 表聯(lián)接起來以產(chǎn)生相同的結果:
在本文介紹了 APPLY 運算符之后,在Navicat for SQL Server使用教程介紹CROSS APPLY 和 OUTER APPLY 查詢方法的第 2 部分將概述使用 APPLY 和 JOIN 之間的區(qū)別,并會講述 APPLY 的其他用途。
Navicat for SQL Server 是一套專為 Mircosoft SQL Server設計的強大數(shù)據(jù)庫管理及開發(fā)工具,了解更多購買詳情可聯(lián)系慧都在線客服。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn