我的比较方法:
IF“1702010070”>“17-2007-0002”THEN 
  ...
ELSE
  ...在sqlserver中比较“1702010070”和“17-2007-0002”,是“17-2007-0002”大 
但在delphi中比较是“1702010070”大 因为字符串前两位相同,在ASCII中第三位“0”比“-”大,所以我也认为是“1702010070”大, 
可sqlserver认为是“17-2007-0002”大,我不清楚依据是什么,或者是不是delphi还有别的比较函数
因为sqlserver数据库中涉及对某个字段排序,所以才发现以上问题 

解决方案 »

  1.   

    奇怪的是我powerbuilder和c#.net 来做比较,也是认为“17-2007-0002”比“1702010070”大的,想不通依据是什么
      

  2.   

    用AnsiCompareStr比较
    var
      s1,s2:string;
      i:Integer;
    begin
      s1 := '1702010070';
      s2 := '17-2007-0002';
      i := AnsiCompareStr(s1,s2);
      ShowMessage(IntToStr(i));
    end;
    AnsiCompareStr返回值小于0,s1<s2
    0,s1=s2
    大于0,s1>s2
      

  3.   

    应该是数据库安装设置当中的排序方式的问题,如果选择的是binary则不会有这个问题.