博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL中1.1,1.10,1.2类的字段的排序

Posted on 2015-02-15 14:45  first_start  阅读(1221)  评论(0)    收藏  举报

create function func_reconbineStr(@str varchar(10))
  returns varchar(20)
as
begin
  declare @strInt int
  declare @strArg varchar(20)=''
  declare @charInt int=0
  set @strInt=charindex('.',@str,1)
  while(@strInt>0)
  begin
    set @charInt=@strInt-1
    if(@charInt<0)
      set @charInt=0
    set @strArg=@strArg+right('00'+substring(@str,1,@charInt),2)+'.'
    set @str=substring(@str,@strInt+1,len(@str))
    set @strInt=charindex('.',@str,1)
  end
  set @strArg=@strArg+right('00'+substring(@str,1,len(@str)),2)+'.'
  return @strArg
end

select from tablename order by dbo.func_reconbineStr(字段)

结果:

1
1.1
1.1.1
1.2
1.10
1.11