Re: Problema con ordenar ignora espacios

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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.