order by

18/06/2004 - 06:48 por Javi | Informe spam
Tengo que hacer una consulta sobre una bdd que ordene segun un campo de
tipo texto pero que contiene numeros.
Al hacer "order by" me ordena alfabeticamente, es decir "7" es mayor que
"2000". No puedo cambiar el tipo del campo a numerico porque en algunas
ocasiones contiene texto.
?existe alguna forma de que me ejecute correctamente la sentencia sql, para
los registros que contienen numeros? es decir los que contienen caracteres
alfanumericos da igual donde aparezcan pero los que son cifras aparezcan
ordenados, mediante la sentencia sql.
Gracias.
 

Leer las respuestas

#1 pablo crosio
18/06/2004 - 18:00 | Informe spam
Suponiendo que el largo del campo sea 5, podes hacer:

select *
from tabla
order by right('00000' + rtrim(ltrim(campo)), 5)

Salu2

Pablo

Tengo que hacer una consulta sobre una bdd que ordene


segun un campo de
tipo texto pero que contiene numeros.
Al hacer "order by" me ordena alfabeticamente, es


decir "7" es mayor que
"2000". No puedo cambiar el tipo del campo a numerico


porque en algunas
ocasiones contiene texto.
?existe alguna forma de que me ejecute correctamente la


sentencia sql, para
los registros que contienen numeros? es decir los que


contienen caracteres
alfanumericos da igual donde aparezcan pero los que son


cifras aparezcan
ordenados, mediante la sentencia sql.
Gracias.


.

Preguntas similares