Ordenar tabla alfanumerica como numerica

16/11/2003 - 23:11 por Antonio | Informe spam
Es decir, tengo una tabla con valores alfanumericos:

1
11
111
2
a-1
3
33
b-1
4
y deseo que se ordenen de forma numerica:
1
2
3
4
11
33
111
a-1
b-1
He probado de todo y no se como hacerlo con las funciones convert me da
error pues valores alfanumericos no se pueden convertir a numericos.

Saludos,
 

Leer las respuestas

#1 Eladio Rincón
16/11/2003 - 23:29 | Informe spam
Hola Antonio,

prueba esto:

CREATE TABLE FOO2 ( valor char(10))
go

insert into foo2 values ( '1' )
insert into foo2 values ( '11' )
insert into foo2 values ( '10' )
insert into foo2 values ( '2' )
insert into foo2 values ( '1' )
insert into foo2 values ( 'a-1' )
insert into foo2 values ( 'b1' )

go

select *
from foo2
order by
case when isnumeric ( valor ) = 1
then cast ( valor as integer )
else 99999999
end
asc


Eladio Rincón
SQL Server MVP
http://eladio.europe.webmatrixhosting.net

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Antonio" escribió en el mensaje news:u7v%
Es decir, tengo una tabla con valores alfanumericos:

1
11
111
2
a-1
3
33
b-1
4
y deseo que se ordenen de forma numerica:
1
2
3
4
11
33
111
a-1
b-1
He probado de todo y no se como hacerlo con las funciones convert me da
error pues valores alfanumericos no se pueden convertir a numericos.

Saludos,




Preguntas similares