Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
有时 DISTINCT 条件是不必要的。例如,结果中的一个或多个列的属性可能(显式或隐式地)包含了 UNIQUE 条件,因为它是主键。
由于 Products 表包含主键 p.ID(它是结果集的一部分),因此以下命令中的 DISTINCT 关键字是不必要的。
SELECT DISTINCT p.ID, p.Quantity FROM Products p;
Products<seq>
数据库服务器将执行语义上等效的查询:
SELECT p.ID, p.Quantity FROM Products p;
同样,以下查询的结果包含两个表的主键,因此结果中的每一行肯定是不重复的。因此,数据库服务器执行此查询时不会在结果集上执行 DISTINCT。
SELECT DISTINCT * FROM SalesOrders o JOIN Customers c ON o.CustomerID = c.ID WHERE c.State = 'NY';
Work[ HF[ c<seq> ] *JH o<seq> ]