首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

字符串有数字排序解决思路

2012-03-02 
字符串有数字排序Name翻页1翻页10翻页11翻页12翻页2翻页3翻页4翻页5翻页6比如一列:NameorderbyName之后,就

字符串有数字排序
Name
  翻页1  
  翻页10  
  翻页11  
  翻页12  
  翻页2  
  翻页3  
  翻页4  
  翻页5    
  翻页6  


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


有什么方法?




[解决办法]
Select *,cnt = cast(stuff(Name,1,PATINDEX( '%[0-9]% ' , Name)-1, ' ') as int) from tb order by cnt
[解决办法]
定义一个函数只取数字
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
end

declare @a varchar(100)
set @a= 'asrev11232123avsekr '

select * from ta order by dbo.ror_f(列名)asc
select a=dbo.roy_f( 'xda11232adfa123adfa ')

热点排行