SQL Server字符串比较时区别大小写方法
上一篇 /
下一篇 2012-08-14 10:49:26
/ 个人分类:数据库
51Testing软件测试网 Z^1HEc 在SQLServer中默认对大小写是不敏感的,例如userName='jesse'和userName='JESSE'结果是一样的。在验证密码的时候可能就需要对字符串大小写敏感,需要做一些处理,介绍两种方法:51Testing软件测试网h
~R)j+? B^
_
Q+~
{%y0 法Ⅰ:转换成二进制再比较,由于大小写的ASC码不同。例如:51Testing软件测试网
Q3| t$HE.HX
jx
select *51Testing软件测试网A)C6MC*] ?y8M2H from T_User -x+]M7mX*[&O0where cast(field as varbinary) = cast( 'Admin' as varbinary) |
51Testing软件测试网f[%s5~f;_?$M 法Ⅱ:利用排序规则,也是基于二进制。在字段后加上collate Chinese_PRC_CS_AS_WS
1`.KK"\%K/d0kX4f(V8`;B6^3U"\;Y5G0 如:51Testing软件测试网pc$S:e,Y@6QAQ
select * aQ^J-^bq"f"e0from T_User51Testing软件测试网
v@sSw3`w where userName='admin' AND PASSWORD collate Chinese_PRC_CS_AS_WS ='Admin' |
51Testing软件测试网Z8nH*s%O+o
`b 是否区分大小写与排序规则有关,排序规则中各部分含义如下所示:51Testing软件测试网&m#\,uxm(Ql\0R'e;t
,r$_9lg;D oy8l4s0 举例分析 Chinese_PRC_CS_AI_WS
}e#H5mi&Z,W0&~9y q&}8f;LPH0 前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
5pU
Z%l@Jk05S`#B_A5|Q-Ag0 排序规则的后半部份即后缀 含义:
+m)K&Ap#o-a@5d051Testing软件测试网:P*~S_9\R\Z _BIN 二进制排序51Testing软件测试网e9pS0P[\
9wt"PK7Ku5}HW0 _CI(CS) 是否区分大小写,CI不区分,CS区分
@1^R)S2v051Testing软件测试网 vi vEh"D@ _AI(AS) 是否区分重音,AI不区分,AS区分51Testing软件测试网jL K#H"QF&_*j
KC(yE9}/f'W0 _KI(KS) 是否区分假名类型,KI不区分,KS区分
%B+[v(?Dog
R [0W8y:smz0 _WI(WS) 是否区分宽度 WI不区分,WS区分51Testing软件测试网:g1[ r$e9P(H,G
t"j.s$ZQomg0 区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
No1w5m'\t,n0j!I;k9Hc;g-^^0 区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字 母视为不等。51Testing软件测试网b,C'Ybn
51Testing软件测试网GyFS)AmL#X 区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
sd!d9{9[7BE~,MH051Testing软件测试网y3H.c2px@ 区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项51Testing软件测试网]P&U1cxPt
收藏
举报
TAG: