Access对文本操作时区分大小写
例子:
abc
ABC
以'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
大家可以针对这个方法试一试!
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]))
表达式。
string2必要参数。任何有效的字符串表达式。
Compare可选参数。指定字符串比较的类型。如果compare 参数是Null,将发生错误。如果省略compare,Option Compare 的设置将决定比较的类型。
compare 参数设置:
vbUseCompareOption,或者-1。使用Option Compare语句设置执行一个比较。
vbBinaryCompare,或者0。执行一个二进制比较。
vbTextCompare,或者1。执行一个文本的比较。
vbDatabaseCompare,或者2。仅适用于Microsoft Access,执行一个基于数据库信息的比较。
返回值:
StrComp 函数有下列返回值:
string1 小于string2返回-1
string1 等于string2 返回0
string1 大于string2 返回1
string1 或string 2为Null 返回Null