LOOP | HASH | MERGE

您無法同時使用 RIGHT 或 FULL,將 LOOP 指定為聯結類型。

REMOTE

只有在左資料表的資料列數比右資料表少時,才應該使用 REMOTE。

如果兩份資料表都是遠端資料表,且來自相同資料來源,就不需要 REMOTE。

當利用 COLLATE 子句將聯結述詞所比較的其中一個值轉換成不同的定序時,便不能使用 REMOTE。

REMOTE 只能用於 INNER JOIN 作業。

當使用不含 ON 子句的 CROSS JOIN 時,您可以用括號來指示聯結順序。

A.使用 HASH

JOIN 作業。

 
複製
USE AdventureWorks2012;
GO
SELECT p.Name, pr.ProductReviewID
FROM Production.Product AS p
LEFT OUTER HASH JOIN Production.ProductReview AS pr
ON p.ProductID = pr.ProductID
ORDER BY ProductReviewID DESC;

B.使用 LOOP

JOIN 作業。

 
複製
USE AdventureWorks2012;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
FROM Sales.SalesPersonQuotaHistory AS spqh
    INNER LOOP JOIN Sales.SalesPerson AS sp
    ON spqh.SalesPersonID = sp.SalesPersonID
WHERE sp.SalesYTD > 2500000.00;
GO

C.使用 MERGE

JOIN 作業。

 
複製
USE AdventureWorks2012;
GO
SELECT poh.PurchaseOrderID, poh.OrderDate, pod.ProductID, pod.DueDate, poh.VendorID 
FROM Purchasing.PurchaseOrderHeader AS poh
INNER MERGE JOIN Purchasing.PurchaseOrderDetail AS pod 
    ON poh.PurchaseOrderID = pod.PurchaseOrderID;
GO

相关文章: