2

我有以下访问查询:

SELECT [city]
FROM [patient]
WHERE REPLACE([patient].[city],'  ',' ') LIKE 'San D*'

我相对确定这曾经有效,但现在我明白了Data type mismatch in criteria expression.

有任何想法吗?

编辑

有人愿意根据自己的数据测试 sql 吗?

4

2 回答 2

5

问题原来是列中的空值。

解决方案是:

SELECT [city]
FROM [patient]
WHERE REPLACE(
  IIF(ISNULL([patient].[city]),'',[patient].[city])
  ,'  ',' ') LIKE 'San D*'
于 2012-06-29T15:08:08.047 回答
3

城市是否存储为字符串?如果它存储为数字(可能作为另一个表的 fkey),那么这将是有意义的,因为您正在对其使用字符串操作。

编辑:自我注意:不要忘记 Null 值。

于 2012-06-29T02:12:36.633 回答