select max(Numbetr) from Information ;Numbetr为字符串类型,数据库有2条记录,分别2012年第99号,2012年第100号,查询出来的最大值是2012年第99号最大,这个查询应该怎么写啊

解决方案 »

  1.   


    select max(convert(int,Numbetr)) from Information
      

  2.   

    select * from information t where number=(select max(number) from tb where id=t.id)
      

  3.   

    你把你的表的所有字段拿出来看看,如果有一个能确定排序的列,那可以用row_number()over()来实现。
      

  4.   

    按一般规则来比较排序的话  是从第一位开始比较,相同就继续下一位比较99和100首先比较的是第一位 那就是9和1 确定9>1 所以99大于100 所以在字符串比较的时候 先要转成int类型.
      

  5.   


    我建议你把2012年第99号这里面的数字都截取出来,转换成int,在比较。
      

  6.   


    create table Information
    (Numbetr varchar(30))insert into Information
    select '2012年第99号' union all
    select '2012年第100号'
    select top 1 Numbetr
    from Information 
    order by 
    cast(substring(Numbetr,
    charindex('第',Numbetr)+1,
    charindex('号',Numbetr)-charindex('第',Numbetr)-1)
    as int) descNumbetr
    ------------------------------
    2012年第100号(1 row(s) affected)