1

我正在尝试在访问中创建一个选择查询,其中 Table2.FullNameField 列标准为“Like Table1.ShortNameField”。因此,如果 Table2.FullNameField 包含 Table1.ShortNameField,则选择该记录。这两个字段都是字符串。问题是名称包含 *。这是一个例子:

ShortNameField = "A*01"

FullNameField = “A*01:04”、“A*15:01”、“A*03:02”等

查询条件 = "Like Table1.ShortNameField" => Like A*01(其中 * 被解释为通配符)

上面 ShortNameField 的预期/期望结果是选择 FullNameField 为“A*01:04”的记录,但我得到的是“A*15:01”的记录。

所以问题是如何让 Like 函数将短名称中的 * 视为字符串的字符而不是通配符?

4

2 回答 2

0

您可以考虑替换字符:

SELECT  t.shortnamefield, t.fullnamefield
FROM Table t
WHERE Replace([fullnamefield],"*","|") 
     Like "*" & Replace([shortnamefield],"*","|") & "*"
于 2012-11-06T00:25:12.527 回答
0

要对 LIKE 子句中的特殊字符进行转义,一般规则是将字符括在 [] 中,例如 [*] 和 [?]。

例子:

select * from x where y like "[*]*"

将为您提供表 x 中的所有记录,其中 y 字段以星号 (*) 开头。

于 2012-11-06T02:02:27.407 回答