我使用 Microsoft SQL Server,但我想这个问题适用于所有 SQL 语言。如果我有:
SELECT OrderHeaderID
,isNull(Qty,0) AS Qty
FROM OrderHeader
LEFT JOIN (
SELECT OrderHeaderID
,Sum(Qty) AS Qty
FROM OrderDetail
GROUP BY OrderHeaderID
) OrderDetail
ON OrderDetail.OrderHeaderID = OrderHeader.OrderHeaderID
WHERE Criteria = 'X'
那么在应用标准之前,是否会对所有 OrderDetail 行执行 GROUP BY?换句话说,我应该注意将标准应用于 GROUP BY 以及外部 SELECT 吗?
顺便说一句,如果您看到这行代码有任何改进,请也发表评论。