如何在SQL中使用LIKE条件来处理数字字段?
在Access中,可以通过将数字字段与一个空字符串连接起来,将其强制转换为可使用LIKE进行比较的字符串:
select * from emp where emp_id & '' like '123*'
还请注意,Access使用*而不是%作为通配符字符。请参阅:Like Operator (Microsoft Access SQL)。
只有在ANSI-89查询模式下,Access才将*用作通配符。请参阅我的答案。
问题出现的原因是在SQL中,无法对数字字段使用通配符(通配符在SQL中用于模糊匹配),但是如果确实需要这样做,可以将数字转换为字符串后再进行通配符匹配。解决方法是使用CONVERT函数将数字转换为字符串,然后使用LIKE条件进行模糊匹配。
例如,在emp表中查找emp_id以1开头的记录可以使用以下SQL语句:
SELECT * FROM emp WHERE CONVERT(varchar(20), emp_id) LIKE '1%'
然而,使用MS Jet数据库时,无法使用CONVERT函数进行字符串转换。但是可以使用类似的方法。可以使用CSTR函数将数字转换为字符串,然后使用LIKE条件进行模糊匹配。