Access教程:查詢文本時,如何匹配大小寫
我們看看下面的例子:
abc
ABC
kkk
我們以'a'為關鍵字,想只查詢到abc這條記錄,請問應該如何處理?
嘗試過以下方法可以解決:
Select * From (Select *, iif(Instr(ID,'a') > 0,mid
(ID,Instr(ID,'a'),1), "") as key FROM aaa) Where StrComp
(key, 'a', 0) = 0
大家可以針對這個方法試一試!
(A)
根據個人的經驗,Jet SQL中的LIKE語句是不支持區分大小寫的。但是,也許我們可以通過其它的方法來在一定程度上實現您所需要的功能。只能說是一定程度上,因為畢竟不可能像LIKE語句那麼靈活的實現區分大小寫;
比如說:希望實現類似LIKE “a*” 的功能,並且希望他是區分大小寫的,我們可以這樣寫QUERY語句:
Select Customers.Name
FROM Customers
Where Asc([city])=Asc("a");
在這個語句中,我們通過 ASC 返回字符串首字母的ASCII碼,然後再進行判斷;
如果希望能夠實現類似於LIKE “abc*”的功能,並且希望他是區分大小寫的,我們可以這樣考慮QUERY語句:
Select Customers.City
FROM Customers
Where (((StrComp([city],"abc",0))=1)) AND (((Asc([city]))>Asc("a") And (Asc([city]))<Asc("c")));
通過上面的例子您可以看出,雖然我們能夠通過變通的方法來實現查詢中對於大小寫的區分,但是相對來說是比較復雜的,還可能會造成一定性能的影響。並且如果您不能夠正確判斷所有可能出現的情況的話,查詢得到的結果可能會是不正確的(比如,我希望實現LIKE “?a??A*”就非常難以判斷了);