0

我在 Access 数据库中有超过 1,000 个具有重复值的条目。我想创建一个名为 Duplicate 的列,并将其设置为true如果记录不是具有特定值的第一个记录。这意味着,如果记录是第一个值为“Red Chair”的记录,则 Duplicate 字段设置为false,但所有后续记录值为“Red Chair”的记录将 Duplicate 字段设置为true

如何在 Access 中执行此查询?

该数据库将升级为 SQL Server 数据库,因此我的一个选择是在我的 SQL 查询中检索记录时“忽略”重复记录。如果此选项可行,我想知道如何在 SQL 中执行此操作作为替代方案。谢谢。

4

3 回答 3

2

您将不得不使用子查询。尝试这个

UPDATE Tabelle1 SET Tabelle1.b = 'Duplicate'
WHERE 
((Tabelle1.[ID] In 
 (SELECT Tabelle1.[ID] FROM Tabelle1 WHERE 
  ((Tabelle1.[a] In 
     (SELECT [a] FROM [Tabelle1] As Tmp GROUP BY [a] HAVING Count(*)>1 )
   )
  AND 
  (Tabelle1.[ID] Not In 
    (SELECT min([id]) FROM [Tabelle1] as grpid GROUP BY [a] HAVING Count(*)>1)
  ));
)));
于 2012-04-22T22:42:29.230 回答
2

我不是 Access 方言的专家,但是这种对 RJIGO 答案或类似内容的改编也可能有效并且更有效:

UPDATE Tabelle1 SET
  b = 'Duplicate'
WHERE 
  Tabelle1.[ID] > (
    SELECT min([id])
    FROM [Tabelle1] as T2
    WHERE T2.[a] = Tabelle1.[a]
  );
于 2012-04-23T02:33:59.300 回答
1

我希望这个sql可以帮助你:

SELECT table.field, Count(table.field) AS test, IIf([test]>1,"TRUE","FALSE") AS check FROM table GROUP BY table.field, IIf([test]>1,"TRUE “,“错误的”);

于 2012-04-22T23:01:24.610 回答