最日很郁闷 数据库有一列HireAmount INT类型
我用SELECT * FROM TABLE ORDER BY HireAmount 对表TABLE进行排序 可是出现的情况是有几行的乱的,比如说:
HireAmount  
10
32
5
7
8
9请问这是怎么回事?

解决方案 »

  1.   

    declare @tab table(HireAmount int)insert @tab values(10)
    insert @tab values(32)
    insert @tab values(5)
    insert @tab values(7)
    insert @tab values(8)
    insert @tab values(9)select * from @tab
    select * from @tab order by HireAmount--说明HireAmount字段是字符型的
    select * from @tab order by convert(varchar(10),HireAmount)
      

  2.   

    select   *   from   @tab   order   by   len(HireAmount),HireAmount
      

  3.   

    declare   @tab   table(HireAmount   int) insert   @tab   values(10) 
    insert   @tab   values(32) 
    insert   @tab   values(5) 
    insert   @tab   values(7) 
    insert   @tab   values(8) 
    insert   @tab   values(9) --select   *   from   @tab 
    select   *   from   @tab   order   by   HireAmount --说明HireAmount字段是字符型的 
    select   *   from   @tab   order   by   convert(varchar(10),HireAmount)--你应该这样
    select   *   from   @tab   order   by   convert(int,HireAmount)
      

  4.   

    哦 原来数据表那列是VARCHAR
    请问select       *       from       @tab       order       by       len(HireAmount),HireAmount 是什么意思?
      

  5.   

    1你本来的数据类型不是int,而是 varchar型的
    转换成int后就可以了。
    2不转换的话,就按 order by len(HireAmount),HireAmount
    也可以