10gR2: Ignorar mayúsculas, minúsculas y acentos

Una de las cuestiones que los desarrolladores muchas veces me hacen es la siguiente:

“Cómo habría que hacer para que esta sucesión aparezca ordenada alfabéticamente?
  • A
  • b
  • C
  • d
  • FrontPage
El orden es “A, C, FrontPage, b, d” cuando el esperado sería “A, b, C, d, FrontPage””
 

Crearé la siguiente tabla, con sus respectivos datos para reproducir la cuestión que nos afecta:

En lo primero que nos vamos a fijar es en los valores de las variables NLS_SORT y NLS_COMP para mi sesión:

Como vemos, el valor de NLS_SORT es SPANISH, con lo cual aplicará la ordenación alfabética de España:

Ahora vamos a comprobar que si le asginamos el valor BINARY a NLS_SORT, hará una ordenación en base al valor binario de los caracteres (y por tanto la ordenación alfabética NO es la que nosotros esperamos):

En el ejemplo anterior hemos jugado simplemente con mayúsculas y minúsculas, pero podemos ver el comportamiento con los acentos:

Vemos como dependiendo del valor de la variable NLS_SORT vamos a ignorar o no tanto las mayúsculas, minúsculas y acentos para la ordenación de la tabla.

Deja un comentario