我有以下Access查询:
SELECT [city]
FROM [patient]
WHERE REPLACE([patient].[city],' ',' ') LIKE 'San D*'
我相对肯定这曾经工作但现在我得到了Data type mismatch in criteria expression.
有什么想法吗?
修改
是否有人愿意根据自己的数据测试sql?
答案 0 :(得分:4)
问题结果是该列中的空值。
解决方案是:
SELECT [city]
FROM [patient]
WHERE REPLACE(
IIF(ISNULL([patient].[city]),'',[patient].[city])
,' ',' ') LIKE 'San D*'
答案 1 :(得分:3)
城市是否存储为字符串?如果它存储为一个数字(也许作为另一个表的fkey),那么当你在其上使用字符串操作时,这将是有意义的。
编辑:自我注意:停止忘记空值。