CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

msSql中减号"-"的问题?

楼主AiQun(爱麇)2004-11-03 22:22:26 在 MS-SQL Server / 基础类 提问

T表的F字段的三条记录中保存以下三个值:A#A,AAA,A-B  
   
  执行:select   f   from   t   order   by   f   时的结果却是:A#A,AAA,A-B  
   
  为什么会忽略了减号("-")???  
   
  问题点数:50、回复次数:20Top

1 楼AiQun(爱麇)回复于 2004-11-03 22:24:18 得分 0

print   case   when   'AAA'>'A-B'   then   'true'   else   'false'   end  
  返回的是false?Top

2 楼hdhai9451(☆新人类☆)回复于 2004-11-03 22:25:37 得分 0

因為它本來就是一個字符串嘛Top

3 楼AiQun(爱麇)回复于 2004-11-03 22:36:58 得分 0

to   hdhai9451(※★開拓者...糊涂中☆※)    
        你没理解我的意思还是在混分?  
   
  用人脑比较一下这三个字符串(由小到大排序),结果应该是:A#A,A-B,AAA  
  但SQL语句的结果却是:A#A,AAA,A-B  
  Top

4 楼yjdn(人形机器)回复于 2004-11-03 22:44:01 得分 0

select   '#'   as   f  
  union    
  select   'A'  
  union    
  select   '-'  
   
  得到的是:-,#,A,       它们的ascii值分别是:#<-<A,确实有点怪了,  
  不知道它是根据什么来排序的Top

5 楼hdhai9451(☆新人类☆)回复于 2004-11-03 22:46:40 得分 0

不好意思﹐是我稿錯了Top

6 楼zjcxc(邹建)回复于 2004-11-03 22:49:18 得分 0

-在SQL中是做特殊处理的,对含有-的字符串排序会产生问题.Top

7 楼zjcxc(邹建)回复于 2004-11-03 22:49:57 得分 0

select   f   from   t   order   by   f   collate   chinease_bin     --这样应该就没问题了Top

8 楼Amuclan(西绪弗斯)回复于 2004-11-03 22:52:35 得分 0

关注!Top

9 楼Amuclan(西绪弗斯)回复于 2004-11-03 22:53:43 得分 0

老大就是老大   真是出手不凡!!   长见识Top

10 楼yjdn(人形机器)回复于 2004-11-03 22:59:59 得分 0

是这个吧:collate   Chinese_PRC_BINTop

11 楼Amuclan(西绪弗斯)回复于 2004-11-03 23:00:55 得分 0

更正一下   应该是  
  select   f   from   t   order   by   f   collate   Chinese_PRC_BINTop

12 楼Amuclan(西绪弗斯)回复于 2004-11-03 23:01:30 得分 0

我不是马甲:)Top

13 楼zjcxc(邹建)回复于 2004-11-03 23:02:45 得分 0

是写错了Top

14 楼Amuclan(西绪弗斯)回复于 2004-11-03 23:02:52 得分 0

顺便问一下   怎样让MS   SQL区分大小写?Top

15 楼yjdn(人形机器)回复于 2004-11-03 23:03:32 得分 15

Chinese_PRC_BIN     二进制顺序、用于   936(简体中文)字符集。    
  COLLATE   Chinese_PRC_CI_AS   字典顺序、不区分大小写、用于   936(简体中文)字符集。    
   
  用Chinese_PRC_BIN这个二进制排序也确实是一种解决方法  
   
  果然是老大。  
   
  测试  
  select   f   from   (select   '#'   as   f  
  union    
  select   'A'  
  union    
  select   '-')   t   order   by   f   collate   Chinese_PRC_BIN  
   
  --结果  
  #  
  -  
  A  
  Top

16 楼yjdn(人形机器)回复于 2004-11-03 23:06:46 得分 0

用这个排序是用于中文的区分大小写的  
  Chinese_PRC_CS_ASTop

17 楼Amuclan(西绪弗斯)回复于 2004-11-03 23:11:02 得分 0

我是想问   建表时如何建一个区分大小写,不重复且非空的字段?  
   
  比如这个字段可以插入  
  a  
  A  
  aaaaaa  
  AAAAAa  
   
  而不会因为重复被拒绝Top

18 楼zjcxc(邹建)回复于 2004-11-03 23:12:45 得分 15

--建表是一样嘛,加上排序规则  
  create   table   表(字段   varchar(10)   collate   Chinese_PRC_CS_AS   primary   key)Top

19 楼Amuclan(西绪弗斯)回复于 2004-11-03 23:33:56 得分 20

谢谢   老大!  
  现在明白了:  
  CaseSensitivity  
   
  CI   指定不区分大小写,CS   指定区分大小写。  
   
  AccentSensitivity  
   
  AI   指定不区分重音,AS   指定区分重音。  
   
  BIN  
   
  指定使用二进制排序次序。  
   
  Top

20 楼Amuclan(西绪弗斯)回复于 2004-11-03 23:35:22 得分 0

SQL   Server联机丛书:  
  mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_ca-co_5ell.htmTop

相关问题

  • 后缀表达式中如何区别负号和减号喃?
  • 如何使得树形控件中的一个没有子项目的目录前面显示为减号?
  • 请问:在html中 %2B 对应于加号(+) ,那减号(-)对应的是什么呢?
  • 请问:资源管理器中左边的小加号和小减号以及虚线是怎样加上的?谢谢
  • 如何使得树形控件中的一个没有子项目的目录前面显示为减号或不显示'+'和'-'?
  • EditMask:#####0.00怎样禁止输入减号?
  • #define M 13, b = M-a-b,结果减号不起作用, b=M???
  • 如何让文本框输入数字和小数点,还有减号!谢谢
  • 怎样把微调控件的上下箭头图案改成加号减号图案?
  • 奇怪问题--为什么我的ie标题栏后面总是自动的加上一个减号????

关键词

  • 减号
  • aaa
  • 值
  • 结果
  • select

得分解答快速导航

  • 帖主:AiQun
  • yjdn
  • zjcxc
  • Amuclan

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo