萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> SQL Server字符串區別大小寫方法

SQL Server字符串區別大小寫方法

  在SQL Server中默認對大小寫是不敏感的,例如userName='jesse'和userName='JESSE'結果是一樣的。在驗證密碼的時候可能就需要對字符串大小寫敏感,需要做一些處理,介紹兩種方法:

  法Ⅰ:轉換成二進制再比較,由於大小寫的ASC碼不同。例如:

  select *

  from T_User

  where cast(field as varbinary) = cast( 'Admin' as varbinary)

  法Ⅱ:利用排序規則,也是基於二進制。在字段後加上collate Chinese_PRC_CS_AS_WS

  如:

  select *

  from T_User

  where userName='admin' AND PASSWORD collate Chinese_PRC_CS_AS_WS ='Admin'

  是否區分大小寫與排序規則有關,排序規則中各部分含義如下所示:

  舉例分析 Chinese_PRC_CS_AI_WS

  前半部份:指UNICODE字符集,Chinese_PRC_指針對大陸簡體字UNICODE的排序規則。

  排序規則的後半部份即後綴 含義:

  _BIN 二進制排序

  _CI(CS) 是否區分大小寫,CI不區分,CS區分

  _AI(AS) 是否區分重音,AI不區分,AS區分

  _KI(KS) 是否區分假名類型,KI不區分,KS區分

  _WI(WS) 是否區分寬度 WI不區分,WS區分

  區分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。

  區分重音:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,比較還將重音不同的字 母視為不等。

  區分假名:如果想讓比較將片假名和平假名日語音節視為不等,請選擇該選項。

  區分寬度:如果想讓比較將半角字符和全角字符視為不等,請選擇該選項

copyright © 萬盛學電腦網 all rights reserved