Name
 翻页1 
 翻页10 
 翻页11 
 翻页12 
 翻页2 
 翻页3 
 翻页4 
 翻页5  
 翻页6 
比如一列:Name 
order by Name 之后,就是上面的样子,但我想要的结果是Name
 翻页1 
 翻页2 
 翻页3 
 翻页4 
 翻页5  
 翻页6 
 翻页10 
 翻页11 
 翻页12 
有什么方法?

解决方案 »

  1.   

    Select * from tb
    order by cast(replace(Name,'翻页','') as float)
      

  2.   

    order by replace(Name,'翻页','') asc
      

  3.   

    WangZWang(先来) 快6秒~~~~~~~~
    哈哈与你的"先来"有点配
      

  4.   

    Select *,cnt = cast(stuff(Name,1,PATINDEX('%[0-9]%' , Name)-1,'') as int) from tb order by cnt
      

  5.   

    定义一个函数只取数字
    create function roy_f(@name varchar(1000))
    returns varchar(1000)
    as
    begin
         while patindex('%[^0-9]%',@name)>0
                 set @name=stuff(@name ,patindex('%[^0-9]%',@name ),1,'')
         return @name
    enddeclare @a varchar(100)
    set @a='asrev11232123avsekr'select * from ta order by dbo.ror_f(列名)asc
    select a=dbo.roy_f('xda11232adfa123adfa')