SQL Server字串比較時區別大小寫方法

來源:互聯網
上載者:User

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

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

select   * from   T_User where   cast(field   as   varbinary)   =   cast( 'Admin'   as   varbinary) 

(注:注意區分資料類型nchar 和 char,二者採用的編碼規則不同,系統預設的均是非unicode編碼)

      法Ⅱ:利用定序,也是基於二進位。在欄位後加上collate Chinese_PRC_CS_AS_WS

      如:

select * from T_Userwhere 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區分 
     區分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。  
     區分重音:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,比較還將重音不同的字 母視為不等。  
     區分假名:如果想讓比較將片假名和平假名日語音節視為不等,請選擇該選項。   
     區分寬度:如果想讓比較將半形字元和全形字元視為不等,請選擇該選項

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.