From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Urko <urko(at)7itria(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Problema con ordenar ignora espacios |
Date: | 2006-01-25 13:37:23 |
Message-ID: | 20060125133723.GA996@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Urko escribió:
> Buenos dias y gracias de antemano
Buenos dias, de nada de antemano.
> Cuando accedo a los datos ya sea desde el open office o el pgadmin
>
> PABLO MARTIN DIAZ
> SILVIA MARTIN ESCUDERO
> CLAUDIA MARTINEZ VILLA
> JESUS MARTIN FERNANDEZ
> JULIA MARTIN GARCIA
>
> Lo unico que he concluido es que ignora los espacios.
Efectivamente; y no es solo Postgres, sino que cualquier programa que
ordene hara esto (programas decentes por supuesto. Siempre es factible
encontrar programas mal hechos que simplemente comparan bytes). Por
ejemplo, sort entrega esto:
$ sort < entrada
MARTIN DIAZ
MARTIN ESCUDERO
MARTINEZ VILLA
MARTIN FERNANDEZ
MARTIN GARCIA
(le tuve que quitar los nombres del principio, pues es obvio que el
ordenamiento lo hiciste asi). Esto sucede porque la definicion de
ordenamiento esta definido de esta manera en la biblioteca C, es decir
es parte del "sistema operativo" y no es realmente culpa de Postgres.
Con sort puedes decirle que use solamente el primer "campo":
$ sort -k1,1 < entrada
MARTIN DIAZ
MARTIN ESCUDERO
MARTIN FERNANDEZ
MARTIN GARCIA
MARTINEZ VILLA
cosa que, hasta donde se, no se puede hacer con Postgres.
> Es eso posible, se puede desactivar de alguna forma
Creo que lo que deberias hacer es normalizar la base de datos, separando
los apellidos maternos de los paternos; esto ademas te salvara el culo
cuando tengas que comparar apellidos compuestos como "DEL RIO" con "DE
LA FUENTE" y "DÉLANO", puesto que el listado ordenado debe ser
DE LA FUENTE
DÉLANO
DEL RIO
y por lo tanto no es simple cosa de decirle que no ignore los espacios,
porque te daria este otro resultado:
$ LC_ALL=C sort < entrada
DE LA FUENTE
DEL RIO
DÉLANO
cosa que evidentemente no es correcta.
De nada a posteriori,
--
Alvaro Herrera Developer, http://www.PostgreSQL.org
Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
No dijo "Hello New Jersey\n", ni "Hello USA\n".
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2006-01-25 14:40:20 | RE: manejo de case studio y postgresql |
Previous Message | David Prieto | 2006-01-25 13:30:45 | RE: Hace pg_dump desde windows con php. |