Centos 7Version PG 9.5client_encoding     UTF8server_encoding UTF8lc_collate 
en_US.UTF-8lc_ctype en_US.UTF-8el tipo de dato de la columna es character 
varying

Use collate "es_AR" y el orden es el misno, la Ñ al final no despues d la N
Eveling Velasquez

 

    El Jueves, 30 de junio, 2016 9:54:51, Gerardo Herzig <gher...@fmed.uba.ar> 
escribió:
 

 > 
> Buen dia
> Necesito hacer un ordenamiento como el siguiente:
> 
> 
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> ÑURINDA
> OSORIO
> 
> 
> hago un order by collate "C" y el resultado es
> 
> 
> 
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> OSORIO
> 
> ÑURINDA
> 
> 
> 
> quedando la letra Ñ al final, debiendo quedar después de la N

Si, es el comportamiento esperado para la Collation "C" (de acuerdo a las docs):
"""
On all platforms, the collations named default, C, and POSIX are available. 
Additional collations may be available depending on operating system support. 
The default collation selects the LC_COLLATE and LC_CTYPE values specified at 
database creation time. The C and POSIX collations both specify "traditional C" 
behavior, in which only the ASCII letters "A" through "Z" are treated as 
letters, and sorting is done strictly by character code byte values.
"""

Tenes que especificar una collation que respete las normas de ordenamiento 
correspondiente a tu idioma:

postgres=# with apellidos (apellido) as (values ('ALVARES'),
('DE LA CRUZ'),
('DE TRINIDAD'),
('FONSECA'),
('MENDOZA'),
('NORORI'),
('OSORIO'),
('ÑURINDA')

)

select * from apellidos order by apellido collate "es_AR";
  apellido  
-------------
 ALVARES
 DE LA CRUZ
 DE TRINIDAD
 FONSECA
 MENDOZA
 NORORI
 ÑURINDA
 OSORIO
(8 filas)

Por cierto, por que usas collation "C"? Cual es la default collation para la 
base en la que estas trabajando?

Gerardo

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

  

Reply via email to