Oracle - orden alfabetico

 
Vista:

orden alfabetico

Publicado por Beabu (6 intervenciones) el 03/06/2008 23:22:41
Hola a todos, mi problema es que tengo que hacer un query que ordene alfabeticamente, el problema es que el order by que se usa en la sentencia manda las letras ñ y Ñ al final del resultado. Alguien sabe como colocarlos en su lugar??..
Gracias de antemano por su ayuda.
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:orden alfabetico

Publicado por pacopaz (20 intervenciones) el 04/06/2008 23:33:41
Según yo (dado que no soy un experto, debo hacer la aclaración previa), eso depende del charset configurado en el oracle, más que de tu query.
Si mal no recuerdo, el charset que deberías estar usando es el iso-8859-1.

Saludos.
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

RE:orden alfabetico

Publicado por beabu (6 intervenciones) el 05/06/2008 00:17:19
el charset que tengo es iso-8859-P1... cual es la diferencia?, aparte utilizo este charset debido a que tengo un campo long raw, cuando uso otro charset, me da un error de que el tamaño del campo no es suficiente para almacenar el dato.
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

RE:orden alfabetico

Publicado por pacopaz (20 intervenciones) el 05/06/2008 21:23:50
Sinceramente no estoy bien a bien enterado de cual es la diferencia y la verdad le he dado muchas vueltas al asunto y lo único que se me ocurre (desafortunadamente) es partir el query en tres y unirlo:

select 1 as ind, (a..n)
union
select 2 as ind, (ñ)
union
select 3 as ind, (o..z)
order by ind

A ver si no me llevo los abucheos por hacer un query extremadamente poco eficiente.

Saludos.
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

RE:orden alfabetico

Publicado por beabu (6 intervenciones) el 06/06/2008 00:33:25
hola pacopaz... muchas gracias por la ayuda, el problema de la solucion que planteas es que solo serviria para las palabras que empiezan con ñ, y no para las que tienen las ñ intermedias:

ejemplo:

CARRERA
CARRETE
CARREÑO

en ese orden me sale en la sentencia.
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

RE:orden alfabetico

Publicado por pacopaz (20 intervenciones) el 06/06/2008 16:32:59
Se me acaba de ocurrir ayer por la noche, y la verdad creo que más lo soñe que lo pensé, pero puedes hacer lo siguiente:

select
...
from
...
where
...
order by Replace([Campo],'ñ','nzzz')

Esto lo pensé en un principio sustituyendo la 'ñ' por 'nz', para que tomara como n y la z lo mandaría hasta el final del orden de las n's, sin embargo, luego me lo imaginé funcionando y me di cuenta que 'ña' quedaría por encima de 'nze'. Por eso puse las demás z's, para asegurar que estuviera luego de cualquier ocurrencia de 'n', incluso para las dobes 'z', comunes en palabras en idioma italiano.
También puedes hacer un replace([campo],'ñ','nñ'), pero se me hace mejor opción hacerlo a 'nzzz', por que es obvio que la 'ñ' la evalúa como caracter especial y no como letra.

Espero que te sirva.

Saludos.
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

RE:orden alfabetico

Publicado por beabu (6 intervenciones) el 06/06/2008 16:50:09
Hola Pacopaz, gracias por tu interes y disculpa por quitarte el sueño.
Hoy me dieron esta solucion...

SELECT * FROM tabla
ORDER BY NLSSORT(columna, 'NLS_SORT=SPANISH')

y si funciona!!!...
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

RE:orden alfabetico

Publicado por pacopaz (20 intervenciones) el 06/06/2008 16:53:30
Pues entonces deja tomo nota, por que esto de plano no lo sabía (ni remotamente).
Gracias a ti, beabu, por compartir el conocimento.

Saludos.
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

RE:orden alfabetico

Publicado por mad (88 intervenciones) el 05/06/2008 10:25:06
una posibilidad podria ser la siguiente:

select nombre||' '||ape1||' '||ape2
from com.entidades
order by ascii(nombre||ape1||ape2)
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

RE:orden alfabetico

Publicado por beabu (6 intervenciones) el 05/06/2008 16:32:03
Gracias por la ayuda, lo acabo de probar.. pero no funciona...
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