create table bbb
(
aaa varchar(50)
);插入下面数据
100
10
251
25
236想得到下面的排序
100
10
236
251
25而不是
10
100
236
25
251如10和100,我想要100比10排前一点,因为len(100)>len(10),问应该怎么弄啊?谢谢

解决方案 »

  1.   

    试下一下排序是否你要的order by aaa+'Z'
      

  2.   


    declare @table table (aaa varchar(50))
    insert into @table
    select 100 union all
    select 10 union all
    select 251 union all
    select 25 union all
    select 236select * from @table order by left(aaa,1),
    left(aaa,2),len(aaa) desc
    /*
    aaa
    --------------------------------------------------
    100
    10
    236
    251
    25
    */
      

  3.   

    谢谢了,问题是
    aaa varchar(50))
    这个aaa长度不确定啊?应该怎么弄呢?
    是不是把aaa后面没有的全部用zzz代替啊?
      

  4.   

    create table bbb(aaa varchar(50))
    insert into bbb
    select 100 union all
    select 10 union all
    select 251 union all
    select 25 union all
    select 236
    select * from bbb order by LEft(aaa,2),LEN(aaa) desc
      

  5.   

    select * from bbb order by aaa ,LEN(aaa) desc