sql

select * from tablea where    column1 collate Chinese_PRC_CS_AS= 'Xxxx'

解决方案 »

  1.   

    sql区分大小写。。 
    方法一.安装SQL时选择区分大小写   
      或安装完以后重建mastar,选择区分大小   
      C:\Program   Files\Microsoft   SQL   Server\80\Tools\Binn\rebuildm.exe   
        
      方法二.sql   server   8.0以上的版本才可以,7.0及其以下不支持   
      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)   
      */   
        
      方法三:任何版本都可以   
      select   *   from   a     
      where   cast(a_add   as   varbinary(10))=   cast('aa'   as   varbinary(10))   参考,来源网络