两个char类型的数字比较大小??是要先转换类型

解决方案 »

  1.   

    --我的算法:
    declare @c1 char(20)
    declare @c2 char(20)
    set @c1='11'
    set @c2='2'
    declare @s intif (convert(int,@c1)>convert(int,@c2))
    print '大于'
    else
    print '小于'
      

  2.   

    对于特别的情况.declare @cc1 char(20)
    declare @cc2 char(20)
    declare @vc1 varchar(60)
    declare @vc2 varchar(60)
    select @cc1='1111123434213414'
    select @cc2='234298343929429'set @vc1=replicate('0',20-len(rtrim(@cc1)))+rtrim(@cc1)
    set @vc2=replicate('0',20-len(rtrim(@cc2)))+rtrim(@cc2)
    if @vc1>@vc2 
    print 'ok'
    else
    print 'no'
    --或者
    declare @cc1 char(20)
    declare @cc2 char(20)
    declare @vc1 varchar(60)
    declare @vc2 varchar(60)
    select @cc1='1111123434213414'
    select @cc2='234298343929429'set @vc1='00000000000000000000'+convert(varchar,@cc1)
    set @vc2='00000000000000000000'+convert(varchar,@cc2)
    select substring(@vc1,len(@vc1)-20,20)
    if substring(@vc1,len(@vc1)-20,20)>substring(@vc2,len(@vc2)-20,20)
    print 'ok'
    else
    print 'no'