【问题标题】:How can I delete records from a table that have certain criteria如何从具有特定条件的表中删除记录
【发布时间】:2009-08-10 13:18:13
【问题描述】:

我知道的菜鸟问题。

我有一个包含大约 10 个字段的表,其中一个字段是类别字段。由于类别的多种类型,我需要此字段存在。但是,该字段中的一个类别是错误的,并且是重复结果。

那么我可以删除表中 CatDescription 字段中包含“Type320”的所有记录吗?如何删除?我想保留这张表中的所有其他内容;只需要删除那个字段中的记录

非常感谢!

编辑:感谢您的回答,我不知道该怎么做,所以这很有帮助

但是,这比我想象的要复杂。我提供的原始数据带有这些重复记录(仅在某些情况下重复,但它们很容易隔离)。这些原始数据每月以几种电子表格形式提供给我。

这一切都与这些 ID 号有关,并且有 10 个字段(xls 列)。正如我之前所说,其中一个是“类别描述”字段(对不起,这不是查找)在某些地方,此记录会在输出时自动复制自身,因为在数据库中,它来自一个特定的“子类别”类型”

所以....每次出现重复时,所有字段中的每一位信息都完全相同,除了这个 CatDescription(一个是 Type320,重复记录类型是“Type321”)。但是,在某些情况下,Type321 本身是有效的(在这种情况下,没有与 Type320 目录描述匹配的数据行)。匹配是指特定记录的所有字段中的所有数据。

一个非常明确的绝对是,如果带有 Type320 CatDescription 的记录的所有字段(内部数据)与带有 Type321 CatDescription 的记录的所有字段(内部数据)匹配,那么我可以删除包含 Type321 CatDescription 的记录。这是正确的,因为这是发生这种重复的唯一情况,通常不是所有这些都应该匹配。

这允许保留所有具有 Type320 和 Type321 数据的唯一记录(不完全匹配);只是应该。这对我来说是有道理的(希望你也是:/),但它可以做到吗?如何做到?

谢谢,因为这超出了我的想象。我宁愿知道如何在访问中做到这一点,但 xls 解决方案同样值得赞赏。哎呀,如果能完成工作,我会在ppt中做! :)

【问题讨论】:

    标签: excel ms-access vba


    【解决方案1】:

    我会尝试以下两个查询之一:

    DELETE FROM table WHERE CatDescription LIKE '%Type320%';
    DELETE FROM table WHERE CatDescription LIKE '*Type320*';
    

    这是因为 Access 数据库引擎可能使用 *(ANSI-89 查询模式,例如 DAO)而不是 %(ANSI-92 Query Mode,例如 OLE DB/ADO)作为通配符。

    或者,这与 ANSI 查询模式无关:

    DELETE FROM table WHERE CatDescription ALIKE '%Type320%';
    

    请注意,Access 数据库引擎的 ALIKE 关键字不受官方支持。

    【讨论】:

    • 约翰尼是对的。请记住,尽管这种方式非常昂贵 - 如果您的桌子很小,这并不重要。如果字段中只有 Type320,请使用“WHERE CatDescription ='Type320'”
    • 我不明白为什么答案使用 LIKE。问题中没有任何迹象表明根本需要部分匹配。
    【解决方案2】:

    CatDescription 字段是否查找另一个表?是不是对那些表的查询会产生你所谓的重复结果?

    如果是这样,请小心不要责怪具有 CatDescription 的表。检查查找表以查看是否在那里找到重复的 Type320。

    如果您没有正确隔离问题,那么您很可能会在不解决问题的情况下删除好的记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多