【轉載】SQL查詢中區分大小寫方法

來源:互聯網
上載者:User
方法一.安裝SQL時選擇區分大小寫  
  或安裝完以後重建mastar,選擇區分大小  
  C:\Program   Files\Microsoft   SQL   Server\80\Tools\Binn\rebuildm.exe  
   
  方法二.  
  alter   database   資料庫   COLLATE   Chinese_PRC_CS_AS  
  修改定序,改成大小寫敏感的定序  
  如果只修改一個表,用alter   table語句    
  如果修改一個庫的預設定序,用alter   datebase語句    
  如果修改整個伺服器的預設定序,用Rebuildm.exe重建master庫    
  --指定定序就可以了  
   
  --樣本    
  seleCT   replace('AbacB'   collate   Chinese_PRC_CS_AS_WS,'B','test')    
   
  --如果你是要求表支援,則可以建表時指定定序,這樣replace就不用寫定序了    
   
  --樣本    
  create   table   tb(a   varchar(20)   collate   Chinese_PRC_CS_AS_WS)    
  insert   tb   values('Abac')    
   
  select   replace(a,'a','test')   from   tb  
   
  drop   table   tb  
   
  指定定序即可  
   
  Windows   定序名稱    
  在   COLLATE   子句中指定   Windows   定序名稱。Windows   定序名稱由定序指標和比較風格構成。    
   
  文法    
  <   Windows_collation_name   >   ::   =    
   
          CollationDesignator_<ComparisonStyle>  
   
          <   ComparisonStyle   >   ::=    
                  CaseSensitivity_AccentSensitivity    
                  [_KanatypeSensitive   [_WidthSensitive   ]   ]    
                  |   _BIN    
   
  參數    
  CollationDesignator    
   
  指定   Windows   定序使用的基本定序。基本定序包括:    
   
  當指定按字典排序時應用其定序的字母表或語言  
   
   
  用於儲存非   Unicode   字元資料的字碼頁。    
  例如   Latin1_General   或法文,兩者都使用字碼頁   1252,或土耳其文,它使用字碼頁   1254。    
   
  CaseSensitivity   
    
  CI   指定不區分大小寫,CS   指定區分大小寫。   
    
  AccentSensitivity   
    
  AI   指定不區分重音,AS   指定區分重音。   
    
  KanatypeSensitive   
    
  Omitted   指定不區分大小寫,KS   指定區分假名類型。   
    
  WidthSensitivity   
    
  Omitted   指定不區分大小寫,WS   指定區分大小寫。   
    
  BIN  
   
  指定使用二進位排序次序。    
   
   
   
  如果你只是目前查詢區分,那麼還是不要這樣改,免得又反悔,如此查詢:  
  select   *   from   a    
  /*  
  a_nam             a_add              
  ----------   ----------    
  1                     aa  
  1                     bb  
  2                     cc  
  2                     vv  
  2                     kk  
  3                     dd  
  3                     ee  
  4                     dd  
  5                     ee  
  6                     yy  
  6                     yy  
   
  (11   row(s)   affected)  
  */  
  現在我們查詢a_add   =   'aa'的,'Aa'等等不行!  
  Example   1:  
   
  select   *   from   a    
  where   a_add   collate   Chinese_PRC_CS_AS_WS   =   'aa'    
  /*  
  a_nam             a_add              
  ----------   ----------    
  1                     aa  
   
  (1   row(s)   affected)  
  */  
   
  Example   2:  
   
  select   *   from   a    
  where   a_add   collate   Chinese_PRC_CS_AS_WS   =   'Aa'    
  /*  
  a_nam             a_add              
  ----------   ----------    
   
  (0   row(s)   affected)  
  */  
   
  方法三.上面的記不住,那麼就用最笨的方法,轉化為ascii  
  select   *   from   a  
  where    
  ascii(substring(a_add,1,1))   =   ascii(substring('Aa',1,1))  
  and    
  ascii(substring(a_add,2,1))   =   ascii(substring('Aa',2,1))  
  /*  
  a_nam             a_add              
  ----------   ----------    
   
  (0   row(s)   affected)  
  */  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.