【发布时间】:2011-12-19 13:36:20
【问题描述】:
能否请您告诉我是否有任何相当于 Access 的 DISTINCTROW for SQL Server?
【问题讨论】:
能否请您告诉我是否有任何相当于 Access 的 DISTINCTROW for SQL Server?
【问题讨论】:
通过阅读 distinctrow 上的文档,您似乎想要一个 exists 子句或(为了获得更好的性能)一个连接:
SELECT * FROM A
WHERE EXISTS(SELECT * FROM B WHERE B.a_id = A.a_id)
SELECT DISTINCT A.* FROM A
INNER JOIN B ON A.a_id = B.a_id
-- corrected, should be inner join here
【讨论】:
EXISTS 与 JOIN 性能的陈述不正确。
EXISTS 的执行计划,它无论如何都是作为连接(半连接)实现的,可以是散列、合并或嵌套循环,因此没有理由期望内连接更好.
SQL server 不支持DISTINCTROW,你应该使用关键字DISTINCT
但是 Chris Shain 给出的答案给了你想要的。
【讨论】:
您可以只使用关键字DISTINCT。
【讨论】: