【问题标题】:How do I use wildcard to find a register ignoring spaces in the position of the wildcard in MS Access SQL?如何使用通配符查找寄存器,忽略 MS Access SQL 中通配符位置的空格?
【发布时间】:2019-09-24 09:23:35
【问题描述】:

我的数据库中有两个或多个不同的寄存器,如下所示:

EMEAFRANKFURTPDEDHuman Resourcesexpat immigrationApplication

EMEAFRANKFURT NBEUAGITCLS (GUI)Application

我想查找任何类似于 EMEAFRANKFURT 但不包括在单词 FRANKFURT 之后带有任何 空格 的寄存器。

如果我使用WHERE [FIELD] IS LIKE "EMEAFRANKFURT*",它不会忽略空格。 所以总而言之,我的问题是,我如何忽略空格?

谢谢,

【问题讨论】:

  • 在执行时间方面会很昂贵,但你可以这样做:WHERE [FIELD] IS LIKE "EMEAFRANKFURT*" AND [FIELD] IS NOT LIKE "EMEAFRANKFURT *"。这将排除带有空格的行。
  • 有趣!它起作用了,所以 SQL 执行第一个 where 过滤器,然后使用第二个条件再次过滤它?凉爽的!只是一个调整,我需要在 NOT 之前删除单词 IS

标签: sql ms-access wildcard


【解决方案1】:

您可以在单个过滤器操作中使用逆范围运算符:

[FIELD] LIKE "EMEAFRANKFURT[! ]*"

请注意,EMEAFRANKFURT 后面至少需要一个字符。如果不希望这样做,您可以使用[FIELD] LIKE "EMEAFRANKFURT[! ]*" Or [FIELD] = "EMEAFRANKFURT"

【讨论】:

    【解决方案2】:

    好吧,在考虑之后我得到了解决方案。 我使用了另一个包含相同字段的表并执行了右连接,然后我使用了如下条件:

    在左表中: Like 'EMEAFRANKFURT*'

    在右表中 Not Like 'EMEAFRANKFURT *'

    因此它忽略了与左表的所有匹配项,该表在单词 FRANKFURT 之后包含 空格

    但是,还有其他不使用右连接的解决方案吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-28
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      相关资源
      最近更新 更多