Oracle - Problemas con ordenación de Alfanumericos

   
Vista:

Problemas con ordenación de Alfanumericos

Publicado por Serafin (1 intervención) el 09/10/2007 14:43:54
Hola a todo el mundo,

Tenemos un problema a la hora de mostrar los datos de un alfanumerico.

En una tabla realizamos un consulta tipo : Select Campo1 From Tabla1 Order by Campo1; los resultados que se devuelven son los siguientes:

AAAAA
BBBBB
CCCCC
77777
88888
99999

Bien, si realizamos una select condicionandola a que el campo1 sea mayor que 88888 (SELECT CAMPO1 FROM TABLA1 WHERE CAMPO1 > '88888' ; los resultados que nos devuelven son:

AAAAA
BBBBB
CCCCC
88888
99999

¿Como puede ser que acepte que los registros con letras son menor que los numeros si resulta que en la ordenación los pone primeros?¿como podemos arreglar esto?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con ordenación de Alfanumericos

Publicado por Rodolfo Reyes (445 intervenciones) el 10/10/2007 18:22:34
¿Que tipo de dato es tu campo alfanumerico?

Yo acabo de hacer la prueba con lo siguiente:

CREATE TABLE prueba
(campo varchar2(5),
numbero number(2)
)
/

insert into prueba VALUES('11111',1);
insert into prueba VALUES('22222',2);
insert into prueba VALUES('33333',3);
insert into prueba VALUES('44444',4);
insert into prueba VALUES('55555',5);
insert into prueba VALUES('66666',6);
insert into prueba VALUES('77777',7);
insert into prueba VALUES('88888',8);
insert into prueba VALUES('99999',9);
insert into prueba VALUES('00000',10);
insert into prueba VALUES('AAAAA',11);
insert into prueba VALUES('BBBBB',12);
insert into prueba VALUES('CCCCC',13);
insert into prueba VALUES('DDDDD',14);
insert into prueba VALUES('EEEEE',15);
insert into prueba VALUES('FFFFF',16);
insert into prueba VALUES('GGGGG',17);
insert into prueba VALUES('HHHHH',18);
insert into prueba VALUES('IIIII',19);
insert into prueba VALUES('JJJJJ',20);

commit;

SELECT *
FROM prueba
ORDER BY CAMPO;

Y este es el resultado

CAMPO NUMBERO
----- ----------
00000 10
11111 1
22222 2
33333 3
44444 4
55555 5
66666 6
77777 7
88888 8
99999 9
AAAAA 11
BBBBB 12
CCCCC 13
DDDDD 14
EEEEE 15
FFFFF 16
GGGGG 17
HHHHH 18
IIIII 19
JJJJJ 20

Si te das cuenta lo ordena de manera correcta. Se me ocurre que en tus campos alfanumericos puedes tener alguna caracter adicional a los que miras en la pantalla.

Intenta:

Select Campo1, LENGTH( Campo1)
From Tabla1
Order by Campo1

Para ver la cantidad de caracteres que hay en cada campo y ver si coincide con la cantidad de los que miras visualmente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar