字符串有数字排序
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 ')