sqlserver排序规则详解.docx

sqlserver排序规则详解.docx

ID:57646217

大小:19.56 KB

页数:8页

时间:2020-08-30

sqlserver排序规则详解.docx_第1页
sqlserver排序规则详解.docx_第2页
sqlserver排序规则详解.docx_第3页
sqlserver排序规则详解.docx_第4页
sqlserver排序规则详解.docx_第5页
资源描述:

《sqlserver排序规则详解.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有一个错误大家应是经常碰到: SQL SERVER数据库,在跨库多表连接查询时,若两数据库默认字符集不同,系统就会返回这样的错误:   “无法解决 equal to 操作的排序规则冲突。”  一.错误分析:  这个错误是因为排序规则不一致造成的,我们做个测试,比如:create table #t1(name varchar(20) collate Albanian_CI_AI_WS,  value int)create table #t2(name varchar(20) colla

2、te Chinese_PRC_CI_AI_WS,    value int )表建好后,执行连接查询:select * from #t1 A inner join #t2 B on A.name=B.name 这样,错误就出现了:   服务器: 消息 446,级别 16,状态 9,行 1   无法解决 equal to 操作的排序规则冲突。  要排除这个错误,最简单方法是,表连接时指定它的排序规则,这样错误就不再出现了。语句这样写:select * from #t1 A inner join #t2 B on A.name=B.name collate Ch

3、inese_PRC_CI_AI_WS  二.排序规则简介:  什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 2000 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。  在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。    select * from ::fn_helpcollations()   排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。  如:  Chinese_PRC_CS_AI_WS   前半部份:指UNICO

4、DE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。  排序规则的后半部份即后缀 含义:   _BIN 二进制排序   _CI(CS) 是否区分大小写,CI不区分,CS区分  _AI(AS) 是否区分重音,AI不区分,AS区分     _KI(KS) 是否区分假名类型,KI不区分,KS区分     _WI(WS) 是否区分宽度 WI不区分,WS区分   区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。  区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等

5、。  区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。  区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项  三.排序规则的应用:  SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则,但它的应用往往被开发人员所忽略。其实它在实践中大有用处。  例1:让表NAME列的内容按拼音排序:create table #t(id int,name varchar(20))insert #t select 1,'中'union all select 2,'国'union all select 3,'人'

6、union all select 4,'阿'select * from #t order by name collate Chinese_PRC_CS_AS_KS_WS drop table #t/*结果:id          name                 ----------- -------------------- 4           阿2           国3           人1           中*/  例2:让表NAME列的内容按姓氏笔划排序:create table #t(id int,name varchar(

7、20))insert #t select 1,'三'union all select 2,'乙'union all select 3,'二'union all select 4,'一'union all select 5,'十'select * from #t order by name collate Chinese_PRC_Stroke_CS_AS_KS_WS  drop table #t/*结果:id          name                 ----------- -------------------- 4           一

8、2           乙3           二

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。