Uy que bien Alvaro!!, la verdad esta funcionalidad no la conocía :-)

 order by a.nombre collate "C";


2012/9/11 Alvaro Herrera <alvhe...@2ndquadrant.com>

> Excerpts from Jose Ayala - CROMOTEX's message of mar sep 11 16:08:19 -0300
> 2012:
> > Gracias por la ayuda, queria ver si alguien podia resolverlo sin tener
> que
> > hacer uso de otra funcion, solo con el order by clasico; leyendo por ahi
> me
> > indicaban que el problema es la forma en la que se construyen los
> indices,
> > y el order by usa estos indices;
>
> Esa explicación no tiene sentido.
>
> > asi que bueno yo lo solucione asi:
> >
> > select codigo,nombre from mitabla
> > ORDER BY ascii(nombre)
>
> Hm.  Creo que si estás en una versión que soporte COLLATION, es mejor
> usar eso, porque el ascii() puede fallar en ciertos casos.  Tomando el
> ejemplo
> de Hellmuth:
>
> alvherre=#  select
>  * from
>
>  
> (values(100,'JUAN'),(200,'LUCHO'),(300,'ARMANDO'),(400,'_JOSE'),(500,'_adrian'))
>  as a(codigo, nombre)
>  order by a.nombre collate "C";
>  codigo | nombre
> --------+---------
>     300 | ARMANDO
>     100 | JUAN
>     200 | LUCHO
>     400 | _JOSE
>     500 | _adrian
> (5 filas)
>
> eso es lo que quieres, ¿no?
>
> --
> Álvaro Herrera                http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>



-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.

Responder a