SqlServer 特殊字符的模糊查询

对于日常工作 数据库中varchar  Nvarhcar支持中文 基本都可以应对了,结果不知道哪天测试突然 放了一个符号 ②或者③,竟然让sqlServer的like '% ②%' 模糊查询时好时坏

一开始以为是nvarchar  类似于emoji 需要 like N'% ②%'  或者特殊字符要转义 [ ②] 用方括弧解决

该表 三个字段 皆使用了同一个排序规则Chinese_PRC_CI_AI,

1、单个模糊查询 是日文里面的②

2、同样的逻辑查询sql,但是用英文就不能正常筛选了 最终不停的尝试 找到了合适的字符集

可以模糊匹配② ,可以忽略大小写,可以匹配日语 达到了需求所在

 关于字符集的属性含义如下:

设置参考值


  _CI_AI   不区分大小写、不区分重音、不区分假名类型、不区分宽度       
  _CI_AI_WS   不区分大小写、不区分重音、不区分假名类型、区分宽度       
  _CI_AI_KS   不区分大小写、不区分重音、区分假名类型、不区分宽度       
  _CI_AI_KS_WS   不区分大小写、不区分重音、区分假名类型、区分宽度       
  _CI_AS   不区分大小写、区分重音、不区分假名类型、不区分宽度       
  _CI_AS_WS   不区分大小写、区分重音、   不区分假名类型、区分宽度       
  _CI_AS_KS   不区分大小写、区分重音、区分假名类型、不区分宽度       
  _CI_AS_KS_WS   不区分大小写、区分重音、区分假名类型、区分宽度       
  _CS_AI   区分大小写、不区分重音、   不区分假名类型、不区分宽度       
  _CS_AI_WS   区分大小写、不区分重音、不区分假名类型、区分宽度       
  _CS_AI_KS   区分大小写、不区分重音、区分假名类型、不区分宽度       
  _CS_AI_KS_WS   区分大小写、不区分重音、区分假名类型、区分宽度       
  _CS_AS   区分大小写、区分重音、不区分假名类型、不区分宽度       
  _CS_AS_WS   区分大小写、区分重音、不区分假名类型、区分宽度       
  _CS_AS_KS   区分大小写、区分重音、区分假名类型、不区分宽度       
  _CS_AS_KS_WS   区分大小写、区分重音、区分假名类型、区分宽度 

  *CS(Case-Sensitivity缩写):CS 指定区分大小写

   CI(Case-Insensitivity缩写):CI 指定不区分大小写。 

  常用的语言集为:Chinese_PRC_CI_AS

 举例分析

  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区分 

  区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。  

  区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。  

  区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。   

  区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值