Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/10/2005, 12:54
j_aspillaga
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 21 años, 4 meses
Puntos: 2
Hola, mira esta funcion:
create function nocar(@var varchar(10))
returns integer
as
begin
declare @i int --indice
declare @l int --longitud
declare @c char(2) --caracter
declare @retorno int --retorno
declare @var2 varchar(10)
set @i=1
set @l=len(@var)
set @var2=@var
while (@i<=@l)
begin
set @c=substring(@var,@i,1)
if (ascii(@c)<48)
begin
set @var2=replace(@var2,@c,'')
end
if (ascii(@c)>57)
begin
set @var2=replace(@var2,@c,'')
end
set @i = @i + 1
end
set @l=len(@var2)
if @l>0
begin
set @retorno=cast( @var2 as integer)
end
else
begin
set @retorno=0
end
return (@retorno)
end

y lo llamaba asi:
select mibd.dbo.nocar(campo1) as nro,campo2
from mitabla order by nro desc
el ascci 48 =1 y el 57 = 0, por eso ese intervalo

por supuesto, es solo una idea pero te puede servir.

suerte y saludos
__________________
Jose A