以下几种方案
SELECT *
FROM 表名
WHERE 字段名='test' collate Chinese_PRC_CS_AI_WS
CI 指定不区分大小写,CS 指定区分大小写。
AI 指定不区分重音,AS 指定区分重音。
Omitted 指定不区分大小写,WS 指定区分大小写。
注:hibernate中不适用,具体方法正在查找中...
而这个作者列举的更多:
今天碰到这个问题了,问了一下朋友,给出了以下几种解决方法,贴出来大家都看一下:
第一种:(蟋蟀)
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不区分大小写
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写
alter database 数据库 COLLATE Chinese_PRC_CS_AS
注:以上技术经测试不适合access数据库
StrComp 函数
返回 Variant (Integer),为字符串比较的结果。
语法
StrComp(string1, string2[, compare])
StrComp 函数的语法有下面的命名参数:
部分 说明
string1 必要参数。任何有效的字符串表达式。
string2 必要参数。任何有效的字符串表达式。
Compare 可选参数。指定字符串比较的类型。如果 compare 参数是 Null,将发生错误。如果省略 compare, Option Compare 的设置将决定比较的类型。
设置
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。
返回值
StrComp 函数有下列返回值:
如果 StrComp 返回
string1 小于 string2 -1
string1 等于 string2 0
string1 大于 string2 1
string1 或 string 2为 Null Null
StrComp 函数示例
本示例使用 StrComp 函数来比较两个字符串。如果第三个参数值为 1,字符串是以文本比较的方式进行比较;如果第三个参数值为 0 或是缺省,则以二进制比较的方式进行比较。
文本比较方式会将大小写字母视为一样,但二进制比较方式则视为不同。
Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd" ' 定义变量。
MyComp = StrComp(MyStr1, MyStr2, 1) ' 返回 0。
MyComp = StrComp(MyStr1, MyStr2, 0) ' 返回 -1。
MyComp = StrComp(MyStr2, MyStr1) ' 返回 1。