Skip site navigation (1) Skip section navigation (2)

Re: Ordenació?==?iso-8859-1?Q?n con caracteres latinos

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: David Prieto <davidp(at)sgth(dot)es>
Cc: 'Xavier Vidal' <xvpxvp(at)menta(dot)net>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ordenació?==?iso-8859-1?Q?n con caracteres latinos
Date: 2005-09-28 13:02:11
Message-ID: 20050928130211.GA5093@surnet.cl (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Hola,

Javier Vidal escribio:

> Perdon, ha sido un error mio de copias y pegar
> 
> El ejemplo es este:
> 
>  Primer apellido
>  ------------------
>  Gomez
>  Guadix
>  Gómez

El collate parece ser ASCII.  Aca con tu ejemplo, en una base de datos
que realmente es Latin-1, tengo esto:

alvherre=# create table persona (apellido text);
inseCREATE TABLE
alvherre=# insert into persona values ('Gomez');
INSERT 0 1
alvherre=# insert into persona values ('Guadix');
INSERT 0 1
alvherre=# insert into persona values ('Gómez');
INSERT 0 1
alvherre=# select * from persona order by apellido;
 apellido 
----------
 Gomez
 Gómez
 Guadix
(3 filas)


David Prieto escribio:

> Supongo que la ordenación la haces con "select... Order by..." (es
> decir, que el que ordena es el postgresql) y no recoges todos los datos
> y los ordenas luego desde PHP, ¿verdad?
> 
> Tengo una base de datos creada con "createdb -E LATIN1". Por probar, he
> creado una tabla e insertado varios valores y me sale:
> 
> select * from nombres  order by nombre;
>   nombre
> ----------
>  García
>  Gómez
>  Gomez
>  Gonzalez
> 
> Es decir: PARECE que sale correctamente (sólo que "ó" va antes de "o").

Aca parece que tu problema es que la base de datos debe ser Latin-1 y el
terminal debe ser utf-8, o lo contrario, o alguna ensalada rara de
encodings (o el terminal es latin-1 pero las variables de locale son
utf-8, o al reves).  Observa mi ejemplo mas arriba, que ordena la o
correctamente con respecto a la ó.

Y sobre todo observa este otro ejemplo:

>  select * from nombres  order by nombre;
>     nombre
> ---------------
>  García
>  Gómez
>  Gómez Alonso
>  Gómez Pérez
>  Gomez
>  Gomez Alvarez
>  Gonzalez
> (7 filas)

alvherre=# select * from persona order by apellido;
   apellido    
---------------
 García
 Gomez
 Gómez
 Gómez Alonso
 Gómez Alvarez
 Gómez Pérez
 González
 Guadix
(8 filas)

Yo diria que los ambientes de ambos estan mal configurados.

-- 
Alvaro Herrera                                http://www.PlanetPostgreSQL.org
"Para tener más hay que desear menos"

In response to

Responses

pgsql-es-ayuda by date

Next:From: Alfredo RicoDate: 2005-09-28 13:02:33
Subject: Re: PReunta sobre esquemas
Previous:From: Johan PetitDate: 2005-09-28 12:56:51
Subject: Clave de postgres

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group