如何使用Access SQL在表中查找重复项?

时间:2015-09-08 12:43:02

标签: sql ms-access

我尝试在Access中使用SQL查询,但它不起作用。为什么呢?

SELECT * FROM table
EXCEPT
SELECT DISTINCT name FROM table;

我在FROM语句中有语法错误。

4 个答案:

答案 0 :(得分:4)

使用HAVING COUNT(姓名)> 1条款

Integer.valueOf()

答案 1 :(得分:3)

MS Access不支持EXCEPT关键字。您可以尝试使用LEFT JOIN:

select t1.* from table t1 left join table t2 on t1.name = t2.name

修改

如果您想在表格中找到重复项,那么您可以尝试:

SELECT name, COUNT(*) 
FROM table 
GROUP BY name
HAVING COUNT(*) > 1

您还可以参考:Create a Query in Microsoft Access to Find Duplicate Entries in a Table并按照步骤查找表格中的重复项。

  

首先打开包含所需表的MDB(Microsoft数据库)   检查重复。单击Queries选项卡和New。

     

enter image description here

     

这将打开“新建查询”对话框。突出显示查找重复项   然后单击“查询向导”。

     

enter image description here

     

现在突出显示要检查重复数据的表格。您可以   还可以选择查询或同时选择表和查询。我从未见过   用于搜索查询...但也许它会派上用场   另一种情况。一旦你突出了适当的表格   单击“下一步”。

     

enter image description here

     

在这里,我们将选择我们想要的表格中的字段   检查重复数据。尽量避免使用广义字段。

     

enter image description here

     

命名查询并单击“完成”。查询将立即运行并弹出   结果。此查询也保存在查询部分中   访问。

     

enter image description here

     

根据所选表格和字段,您的结果将会显示   类似于下面的镜头显示我什么都没有   在第一张照片中重复并且重复的结果在   其他

     

enter image description here enter image description here

答案 2 :(得分:1)

您可以使用LEFT JOIN或EXISTS

LEFT JOIN

SELECT DISTINCT t1.NAME FROM table1 as t1
LEFT JOIN table2 as t2 on t1.name=t2.name
WHERE t2.name is null
;

NOT EXITS

SELECT T1.NAME FROM table1 as t1 where not exists
(SELECT T2.NAME FROM table2 as t2 where t1.name=t2.name)

答案 3 :(得分:0)

Access是否支持except是一个问题。另一个是你没有正确使用它。您的select *高于exceptselect name。那不是有效的sql。如果您在SQL Server中尝试过,那么您的错误消息将是All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.