建立函数:
create function GetNum(@str varchar(3000))
returns int
as
begin
declare @r int
declare @tr varchar(300)
declare @ts varchar(300)
set @ts=@str
set @tr=''while (left(@ts,1) in ('0','1','2','3','4','5','6','7','8','9'))
begin
set @tr=@tr+left(@ts,1)
set @ts=right(@ts,len(@ts)-1)
end
set @r=cast(@tr as int)
return @r
endGOcreate function GetNotNum(@str varchar(3000))
returns varchar(300)
as
begin
declare @r varchar(300)
declare @tr varchar(300)
declare @ts varchar(300)
set @ts=@str
set @tr=''while (left(@ts,1) in ('0','1','2','3','4','5','6','7','8','9'))
begin
set @tr=@tr+left(@ts,1)
set @ts=right(@ts,len(@ts)-1)
end
set @r=@ts
return @r
endGO查询:
select ... from ... order by dbo.GetNum(字段),dbo.GetNotNum(字段)