据我所知,查询中使用的Like运算符旨在对字符串字段执行模式匹配。我很惊讶地发现在Access 2007中它也适用于数字字段。例如,我创建了一个带有名为Data的数字字段的表,其中包含值2012,2013,2110,并意识到以下查询可以正常工作
SELECT myTable.data
FROM myTable
WHERE (((myTable.data) Like "2013"));
SELECT myTable.data
FROM myTable
WHERE (((myTable.data) Like "201*"));
SELECT myTable.data
FROM myTable
WHERE (((myTable.data) Like 2013)); //this one works even without "
这是Like运算符的工作方式吗?它是否在数字上执行模式匹配?我很困惑。
答案 0 :(得分:0)
尝试这样
SELECT myTable.data
FROM myTable
WHERE (((myTable.data) Like '201#'));
# Allows you to match on a single numeric digit
* allows you to match any string of any length (including 0 length)
? allows you to match on a single character
答案 1 :(得分:0)
这里发生的是“字符串和数字数据类型之间的隐式转换”,以便LIKE运算符能够完成其工作。
许多数据库系统为SUBSTR或CONCAT等其他运营商实现了这一点。