Buenas tardes,
Para simplificar mi duda, he creado una base de datos (PRUEBA) con una unica
tabla (llamada TABLA) y esta tabla solo contiene un campo (CODIGO, nchar(10)).
La tabla tiene como collation Traditional_Spanish_CI_AS, es decir, case
insentsitive y ordenacion Spanish (aunque he probado inclusi en English y
pasa lo mismo).
En la tabla meto los siguientes registros:
CODIGO
-
+
A+
A-
A+A
A-A
y ahora hago un SELECT * FROM TABLA ORDER BY CODIGO
Resulta que me da esta ordenacion:
-
+
A-
A+
A+A
A-A
Primero, me llama la atencion que en los 4 primeros registros ordena el -
antes que el + (cuando en la tabla ascii y tambien tambien en la pagina de
codigos 1252, el caracter + (ascii 43) va antes que el - (ascii 45).
Bueno, puedo aceptar que el collation ordene diferente lexicograficamente...
pero entonces no entiendo porque pone A+A antes que A-A.
¿Alguien puede aclararme esto? Me he dado cuenta de esto porque en una
aplicacion desarrollada en C++, al ordenar con el collate (con la funcion
strcoll()) el criterio es distinto... pero bueno, lo del C++ ya es esta fuera
del tema de esta news.
Gracias,
Vicente Flich
Leer las respuestas