SQL Server繁体中文下模糊搜索的实现
在使用BIG5编码关键字对Sql Server(繁体)进行模糊搜索时,
使用 Select * From tablename Where field1 like '%xxx%' 这样的语句进行查询,一般返回不出任何结果,即使有数据存在
<script src='Http://code.xrss.cn/AdJs/csdntitle.Js'></script>
解决方法:
首先确认该字段为unicode类型,如 nchar,nvarchar,ntext
然后这样组织查询语句
Select * From tablename Where field1 like N'%xxx%'
注意查询关键字前面的N,即可返回实际的查询结果
相关资料:
使用 Unicode 数据
Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地翻译位模式。
对于用一个字节编码每个字符的数据类型,存在的问题之一就是此数据类型只能表示 256 个不同的字符。这就迫使对于不同的字母表(例如相对较小的欧洲字母表)采用多重编码规格(或者代码页)。而且也不可能处理象日文汉字或韩国文字这样具有数千个字符的字母表。
<script src='Http://code.xrss.cn/AdJs/csdnEnd.Js'></script>
每个 Microsoft® SQL Server™ 排序规则都有一个对表示 char、varchar 和 text 值中的每个字符定义位模式进行定义的代码页。可为个别的列和字符常量指派不同的代码页。客户端计算机使用与操作系统区域设置相关联的代码页解释字符位模式。有很多种不同的代码页。一些字符出现在某些代码页上,但并不出现在其它的代码页上。某些字符在一些代码页上用一个位模式定义,而在其它的代码页上却用另一个位模式定义。当您设计必须处理不同语言的国际性系统时,为了满足不同国家/地区的语言需求,给所有的计算机挑选代码页就变得困难了。要保证每一台计算机与使用不同代码页的系统交互时都进行正确的翻译也是困难的。
Unicode 规格通过采用两个字节编码每个字符使这个问题迎刃而解。转换最通用商业语言的单一规格具有足够多的 2 字节的模式 (65,536)。因为所有的 Unicode 系统均一致地采用同样的位模式来代表所有的字符,所以当从一个系统转到另一个系统时,将不会存在未正确转换字符的问题。通过在整个系统中使用 Unicode 数据类型,可尽量减少字符转换问题。
在 Microsoft SQL Server 中,以下数据类型支持 Unicode 数据:
nchar
nvarchar
ntext
说明 这些数据类型的前缀 n 来自 SQL-92 标准中的 National(Unicode)数据类型。
nchar、nvarchar 和 ntext 的用法分别与 char、varchar 和 text 的用法一样,但在以下方面不同:
Unicode支持的字符范围更大。
存储 Unicode 字符所需要的空间更大。
nchar 和 nvarchar 列最多可以有 4,000 个字符,而不象 char 和 varchar 字符那样可以有 8,000 个字符。
Unicode 常量使用 N 开头来指定:N'A Unicode string'。
所有 Unicode 数据都使用相同的 Unicode 代码页。排序规则不控制用于 Unicode 列的代码页,仅控制比较规则和是否区分大小写等特性。
该文章转载自网络大本营:http://www.xrss.cn/Dev/DataBase/20084318977.Html
SQL Server繁体中文下模糊搜索的实现相关推荐
- SQL Server 多实例下的复制
SQL Server 多实例下的复制 原文:SQL Server 多实例下的复制 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(P ...
- SQL Server插入中文数据后出现乱码
原文:SQL Server插入中文数据后出现乱码 今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [d ...
- 【MSSQL】SQL SERVER导入中文乱码问题解决
公司最近承接了一个项目,甲方现使用旧版SiteServer框架(以下简称"SiteCMS")作为门户网站,使用的数据源是SQL Server. 现在需要对SiteCMS进行升级,在 ...
- SQL Server插入中文出现乱码??的解决办法
一: 出现的情形 当写入英文版本的SQL Server 时候可能出现这个问题, 比如您的数据库创建在自己的中文SQL Server,而另一个数据库放在国外虚拟主机上(PS:国外的SQL Server当 ...
- SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -1(服务器视角)...
1.需求概括 我们知道,在SQL Server Alwayson 架构中,有多种虚拟IP,例如 WindowsCluster IP,ListenIP,角色高可用性IP(类似于侦听IP).在某些条件下, ...
- linux sqlserver有图形化吗,SQL Server for Linux 下一版本的公共预览
当微软宣布即将发布SQL Server for Linux版本的时候,有些人觉得很兴奋,有些人觉得然并卵,但是既然Gartner在2016年的数据库管理系统魔力象限图中将微软列在了第一位,超过了一直以 ...
- linux外网sql server,在linux下连接MS SQL Server
在工作中需要在Linux服务器上访问MS SQL Server数据库,我马上就想到了适用ODBC接口进行实现,毕竟它的移植性更好. 首先需要选一种支持MS SQL Server的ODBC驱动,商业的不 ...
- [导入]XML for Analysis(XMLA)开发详解-(3)各版本的SQL Server及Windows下配置XMLA over HTTP访问SASS(OLAP)的文档合集...
1. SQL Server Analysis Services 2000XML for Analysis SDKHow to build XMLA using SQL Server 2000jpivo ...
- SQL Server同实例下不同数据库表的同步(job实现)
公司项目中遇到一个问题:在同一SQL Server数据库实例中,有一个数据库A和一个数据库B,需要将数据库A中t1表中的数据同步到数据库B中的t2表中,实时性要求不高,可以一天同步一次. 今天的初始思 ...
最新文章
- 51单片机c语言运算符,51单片机表达式语句的用法解析
- mysql5.7.17主从_MySQL 5.7主从不停机添加新从库
- Vuex-状态管理模式
- (Matlab问题解决)运行matlab程序后,工作区不能显示变量
- leetcode力扣12. 整数转罗马数字
- DeepWalk:图网络与NLP的巧妙融合
- CES 2018 七大看点前瞻:模块化电视、枪型游戏设备……
- 大屏数据可视化设计指南
- 微服务守护神-Sentinel-概念
- html炫彩粒子的代码,HTML5 Canvas炫彩粒子特效生成器
- apache rewrite规则全攻略
- 微信小程序 navigator 导航
- 毛笔字识别--详细注释解析恩培作品6
- 内存泄露分析之MAT工具使用
- unity基础开发----unity获取外部设备(方向盘)按键
- 手机银行提示服务器证书异常,台州银行个人网银-常见问题及异常问题及处理方法...
- AutoCAD 2014 新特性概览
- Vue中如何进行屏幕录制与直播推流
- 时间维度表数据制作(调用API接口)
- ARM C/C++编译器
热门文章
- Mac电脑选择系统菜单中的关机或重启无法关机或重启,只能通过按电源键关机以及打开应用经常卡死问题及解决方案
- 了解12306购票流程
- Spring LDAP的使用
- 乱砍设计模式之一 -- STRATEGY模式
- Html5手机微信摇一摇
- Springboot毕设项目烟酒营销管理系统fihomjava+VUE+Mybatis+Maven+Mysql+sprnig)
- R plot图片背景设置为透明_R语言实战 牛国庆
- Linux下双网卡绑定bond0,1,4
- linux双网卡配置bond4,centos7双网卡绑定bond0
- ipvsadm命令用法