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

Duda Ordenamiento en Consulta - PostgreSQL

Estas en el tema de Duda Ordenamiento en Consulta - PostgreSQL en el foro de PostgreSQL en Foros del Web. Cordial Saludo Tengo una tabla "terceros", en la cual tengo los campos "primerNombre", "segundoNombre", "primerApellido", "segundoApellido" (entre otros, pero estos son los campos que me ...
  #1 (permalink)  
Antiguo 13/06/2011, 11:08
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
De acuerdo Duda Ordenamiento en Consulta - PostgreSQL

Cordial Saludo

Tengo una tabla "terceros", en la cual tengo los campos "primerNombre", "segundoNombre", "primerApellido", "segundoApellido" (entre otros, pero estos son los campos que me generan el inconveniente a resolver) y cuando ejecuto la siguiente consulta:

SELECT "id", "primerNombre" || ' ' || "segundoNombre" || ' ' || "primerApellido" || ' ' || "segundoApellido" AS propietario, "documentoIdentificacion" FROM "terceros" ORDER BY propietario LIMIT 5 OFFSET 0

con los siguientes registros:

id primerNombre segundoNombre primerApellido segundoApellido documentoIdentificacion
4 Jhonatan Gomez Ramirez 88222
3 Jhon Edward Gomez Ramirez 111222
2 Jhon Lopez Gaviria 88
1 Jhon Alexander Gomez Ramirez 991222

estos quedan así:

id propietario documentoIdentificacion
2 Jhon Lopez Gaviria 88
1 Jhon Alexander Gomez Ramirez 991222
3 Jhon Edward Gomez Ramirez 111222
4 Jhonatan Gomez Ramirez 88222

la razón de por qué se organizan de esta manera sé que es obvia, ya que algunos no tienen "segundoNombre", más me gustaria saber si alguno de ustedes sabe cómo podria hacer para que queden bien organizados independientemente de esto.

es decir que la consulta debería arrojar esto:

id propietario documentoIdentificacion
1 Jhon Alexander Gomez Ramirez 991222
3 Jhon Edward Gomez Ramirez 111222
2 Jhon Lopez Gaviria 88
4 Jhonatan Gomez Ramirez 88222

Quedo atento a sus comentarios.

Muchas gracias.

Última edición por GUILLHERMOSOFT; 13/06/2011 a las 12:42
  #2 (permalink)  
Antiguo 13/06/2011, 16:23
Avatar de ozplc  
Fecha de Ingreso: agosto-2006
Ubicación: Css
Mensajes: 15
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Buenas tardes,
Para hacer eso debes condicionar si la columna te viene vacia que coloque ' ' en postgress seria usando coalesece. Tu SQL quedaria asi:


SELECT id,
coalesce("primerNombre", '') || ' ' || coalesce("segundoNombre", '') || ' ' || coalesce("primerApellido", '') || ' ' || coalesce("segundoApellido", '') AS propietario, "documentoIdentidad"
FROM nombre
ORDER BY id LIMIT 5 OFFSET 0



Si alguien tiene otra idea bienvenida sea.
  #3 (permalink)  
Antiguo 14/06/2011, 07:05
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
De acuerdo Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Hola ozplc de antemano te doy las gracias por tu ayuda, más ya probé tu consulta, sin embargo sigo teniendo el mismo problema, esta no solucionó el inconveniente.
  #4 (permalink)  
Antiguo 14/06/2011, 07:24
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

La que te da ozplc la ordena por ID como aparentemente necesitas que te queden ordenados.

Si no es el ID el factor para el orden cual es guillermo?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 14/06/2011, 10:07
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
De acuerdo Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Hola huesos, el factor de orden no es el ID, sino el nombre completo (concatenando los dos nombres y los dos apellidos), por eso la consulta que tengo es:

SELECT "id", "primerNombre" || ' ' || "segundoNombre" || ' ' || "primerApellido" || ' ' || "segundoApellido" AS propietario, "documentoIdentificacion" FROM "terceros" ORDER BY propietario LIMIT 5 OFFSET 0
  #6 (permalink)  
Antiguo 14/06/2011, 10:41
Avatar de ozplc  
Fecha de Ingreso: agosto-2006
Ubicación: Css
Mensajes: 15
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Saludos,

Pensé que el problema era solo la parte de que los nombre no se veian bien. AHora si quieres ordenar por el nombre-segundo nombre-primer apellido-segundo apellido agrega esas columnas al order by y listo. Lo que hace es ir ordenando poco a poco, si tienen el primer nombre igual va por el segundo y así poco a poco...

SELECT id,
coalesce("primerNombre", '') || ' ' || coalesce("segundoNombre", '') || ' ' || coalesce("primerApellido", '') || ' ' || coalesce("segundoApellido", '') AS propietario, "documentoIdentidad"
FROM nombre
ORDER BY "primerNombre","segundoNombre","primerApellido","s egundoApellido"

LIMIT 5 OFFSET 0

Gracias y disculpa!!
  #7 (permalink)  
Antiguo 14/06/2011, 10:56
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Hola ozplc, una vez más gracias por tu ayuda, pero veo que no leiste bn la primera nota del post, pues aún no te queda claro el inconveniente que se me esta presentando, porque la consulta que me das me genera el mismo inconveniente, lo cual me hace creer que sabes qué quiero ordenar, pero no conoces el inconveniente que se me está presentando al hacerlo.

Te pido que por favor leas de manera especial la parte que dice: "la razón de por qué se organizan de esta manera sé que es obvia, ya que algunos no tienen "segundoNombre", más me gustaria saber si alguno de ustedes sabe cómo podria hacer para que queden bien organizados independientemente de esto."
  #8 (permalink)  
Antiguo 14/06/2011, 13:42
Avatar de ozplc  
Fecha de Ingreso: agosto-2006
Ubicación: Css
Mensajes: 15
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Cita:
Iniciado por GUILLHERMOSOFT Ver Mensaje
Hola ozplc, una vez más gracias por tu ayuda, pero veo que no leiste bn la primera nota del post, pues aún no te queda claro el inconveniente que se me esta presentando, porque la consulta que me das me genera el mismo inconveniente, lo cual me hace creer que sabes qué quiero ordenar, pero no conoces el inconveniente que se me está presentando al hacerlo.

Te pido que por favor leas de manera especial la parte que dice: "la razón de por qué se organizan de esta manera sé que es obvia, ya que algunos no tienen "segundoNombre", más me gustaria saber si alguno de ustedes sabe cómo podria hacer para que queden bien organizados independientemente de esto."
No se si por casualidad usaste el SQL pero en el ejemplo que utilice en mi maquina para darte la respuesta me sirvió, el mismo dio:


id propietario documentoidentificacion
11;"Jhon Alexander Gomez Ramirez";991222
9;"Jhon Edward Gomez Ramirez";2555455
10;"Jhon Lopez Gaviria";2555455
8;"Jhonatan Gomez Ramirez";88222


Si observo tu respuesta idea segun tu salida seria:
Cita:
id propietario documentoIdentificacion
1 Jhon Alexander Gomez Ramirez 991222
3 Jhon Edward Gomez Ramirez 111222
2 Jhon Lopez Gaviria 88
4 Jhonatan Gomez Ramirez 88222
Y si no es la respuesta lamento no poderte ayudar.
  #9 (permalink)  
Antiguo 14/06/2011, 16:58
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Duda Ordenamiento en Consulta - PostgreSQL

Hola, de verdad lo usé:

SELECT "id",
coalesce("primerNombre", '') || ' ' || coalesce("segundoNombre", '') || ' ' || coalesce("primerApellido", '') || ' ' || coalesce("segundoApellido", '') AS propietario, "documentoIdentificacion"
FROM "terceros" ORDER BY "primerNombre","segundoNombre","primerApellido","s egundoApellido"
LIMIT 5 OFFSET 0

sin embargo continuo obteniendo exactamente el mismo resultado, no como lo necesito.

Etiquetas: ordenamiento
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




La zona horaria es GMT -6. Ahora son las 21:23.