2012-06-29 108 views
2

我有以下Access查詢:訪問替換功能

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

我這個曾經工作相對比較確定的,但現在我得到Data type mismatch in criteria expression.

任何想法?

編輯

任何人都願意測試針對自己的數據的SQL?

回答

1

問題原來是列中的空值。

解決的辦法是:

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

這非常有幫助!謝謝! – ic3b3rg

3

城市存儲爲字符串嗎?如果它存儲爲一個數字(也許作爲一個fkey到另一個表),那麼當你使用字符串操作時,這是有意義的。

編輯:自我注意:不要忘記空值。

+0

不,這是一個字符串。 – ic3b3rg

+1

@ ic3b3rg你確定它是一個字符串嗎?您在設計視圖中查看了桌子本身,並確保沒有使用查找表?我問,因爲查詢適合我。 – Fionnuala

+0

@Remou問題是列中的空值 - 我用解決方案添加了答案。 – ic3b3rg