【问题标题】:Access 10 sql query访问10条sql查询
【发布时间】:2017-11-16 15:45:35
【问题描述】:

我想在访问 10 sql 查询中使用 LIKE 运算符和变量。

例子:

temporary variable var contains value bs
var = "bs"

我想匹配每个以临时变量值开头的字符串,后跟零个或多个数字。

我正在尝试触发查询:

select * from xyz where variety LIKE "@[tempvars]![var] + [0-9]*"

返回 0 条记录。 谢谢你的帮助。

【问题讨论】:

  • 您似乎正尝试在查询中使用 MS 访问不支持的 REGEX。但是,您可以使用自定义函数:请参阅此线程:stackoverflow.com/questions/10393087/…
  • 不要将此标签用于 Microsoft Access,请改用 [ms-access]。
  • 空记录不是一回事。 Null 不为零。

标签: sql ms-access ms-access-2010 sql-like


【解决方案1】:

您需要在引号之外引用您的 tempvar,并使用 & 进行连接:

select * from xyz where variety LIKE "@" & [tempvars]![var] & "[0-9]*"

这将返回所有记录,其中variety 以文字@ 开头,然后是[tempvars]![var] 中的任何内容,然后是数字,然后是任意数量的字符。

【讨论】:

  • 仍然返回 0 条记录。我有 bs01 条目的记录。
  • 这不是以文字 @ 开头的,是吗?
  • 知道了。非常感谢 。非常愚蠢的错误。 @Erik von Asmuth
  • 当我的临时变量包含 BS01 时,它返回 0 条记录。为什么会这样?
  • 但 [0-9]* 表示零次或多次出现。对吧?
【解决方案2】:

您可以检查您的表中是否有该品种。如果您的表中有该品种,则不要使用 like 运算符进行搜索,否则请使用 like 运算符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2019-01-04
    • 2011-03-19
    • 2016-10-17
    • 1970-01-01
    • 2013-12-19
    • 2013-06-07
    相关资源
    最近更新 更多