Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ordenar consulta por apellido y nombre

Estas en el tema de Ordenar consulta por apellido y nombre en el foro de Bases de Datos General en Foros del Web. Hola foro!!!!: El desafio que planteo es el siguiente: tengo una tabla de personas con los campos : id, apellido y nombre; y quiero consultarla ...
  #1 (permalink)  
Antiguo 05/02/2004, 07:37
 
Fecha de Ingreso: febrero-2004
Mensajes: 4
Antigüedad: 20 años, 2 meses
Puntos: 0
Ordenar consulta por apellido y nombre

Hola foro!!!!:
El desafio que planteo es el siguiente: tengo una tabla de personas con los campos : id, apellido y nombre; y quiero consultarla ordenada por apellido y luego por nombre (hasta aca es facil) para lo cual uso el 'order by apellido, nombre' PERO los apellidos que contienen acento quedan fuera de lugar, tambien los que usan 'ñ' . Se que estos caracteres en la tabla ascii estan despues del abecedario. ¿como soluciono esto?. Uso postgreSQL. Desde ya muchas gracias!.

gqxns
  #2 (permalink)  
Antiguo 06/02/2004, 07:06
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Has probado a hacer algo como

... order by replace(apellido,áéíóúñÁÉÍÓÚÑ,aeiounAEIOUN)

??

No se como es exactamente el replace en PostgreSQL, buscalo en algun manual.

Otra solución que se me ocurre es que tengas un campo alternativo que almacene los apellidos y nombre sin acentos ni eñes y ordenes por ellos pero muestras los campos correctos.
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #3 (permalink)  
Antiguo 06/02/2004, 07:15
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Como le decia a bulldog en otro post, consulta también la funcion SQL translate(). Creo que te será tamién de utilidad para este tipo de cosas.

Ciao!
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #4 (permalink)  
Antiguo 06/02/2004, 07:28
 
Fecha de Ingreso: febrero-2004
Mensajes: 4
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias Helbira! esas son buenas ideas, funciona tu idea salvo para la ñ que depende de los casos ordena correctamente o no, ademas el uso del la funcion me incrementa considerablemente el tiempo de respuesta :|
Ahora estoy probando configurar toda la BD a una regionalizacion estableciendo el encoding (eje. LATIN1) y el COLLATE a 'es_ES'
estos son parametros que se establecen al crear el 'cluster' que soportará la BD y en la creacion de la BD.
Gracias de todos modos!...si logro hacerlo andar os comento.

Saludos!.
  #5 (permalink)  
Antiguo 06/02/2004, 07:33
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
El tema de la ñ.... ummm, dejame pensar... no te va bien al sustituirla por una n, verdad?
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #6 (permalink)  
Antiguo 06/02/2004, 07:47
 
Fecha de Ingreso: febrero-2004
Mensajes: 4
Antigüedad: 20 años, 2 meses
Puntos: 0
Con la vocales anda fenomeno ya que si uso con acento o sin acento siempre sigue siendo la misma vocal, es decir 'a' o 'á' es 'a', ahora con la 'ñ' la estaria reemplazando por 'n' y y no es los mismo. por ejemplo:

Nada
Ñandú
Nico

cuando tendria que ser...

Nada
Nico
Ñandú

tampoco funciona si reemplazo 'ñ' por 'o' :|
  #7 (permalink)  
Antiguo 06/02/2004, 08:13
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
y si la reemplazas por nz ?? (las dos juntas)

Puf!!... una paranoia que me ha pasado por la cabeza de repente pero que no he pensado si resultaría.
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #8 (permalink)  
Antiguo 22/02/2004, 10:49
 
Fecha de Ingreso: febrero-2004
Mensajes: 4
Antigüedad: 20 años, 2 meses
Puntos: 0
Encontré una buena solucion para los usuarios de PostgreSQL: vean como definir el lenguage en español en el SO que corran el postgres (en mi caso uso Debian y lo hice con el comando locale-gen), una vez hecho esto para las versiones 7.3 en adelante hay que crear un cluster con el comando initdb y entre los parametros agregar --locale=es_ES. Luego seguir con la instalacion de la BD normalmente.
Para las versiones de postgres 7.2 hay que recompilar los fuentes con ./configure <parametros_que_yo_quiera> --enabled-locale , recompilar y volver a instalar. Eso es todo.

Última edición por gqxns; 22/02/2004 a las 10:50
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 04:03.