我尝试在Access中使用SQL查询,但它不起作用。为什么呢?
SELECT * FROM table
EXCEPT
SELECT DISTINCT name FROM table;
我在FROM语句中有语法错误。
答案 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。
这将打开“新建查询”对话框。突出显示查找重复项 然后单击“查询向导”。
现在突出显示要检查重复数据的表格。您可以 还可以选择查询或同时选择表和查询。我从未见过 用于搜索查询...但也许它会派上用场 另一种情况。一旦你突出了适当的表格 单击“下一步”。
在这里,我们将选择我们想要的表格中的字段 检查重复数据。尽量避免使用广义字段。
命名查询并单击“完成”。查询将立即运行并弹出 结果。此查询也保存在查询部分中 访问。
根据所选表格和字段,您的结果将会显示 类似于下面的镜头显示我什么都没有 在第一张照片中重复并且重复的结果在 其他
答案 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 *
高于except
和select 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.