| From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> | 
|---|---|
| To: | Jose Ayala - CROMOTEX <jayala(at)cromotex(dot)com(dot)pe> | 
| Cc: | Hellmuth Vargas <hivs77(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | Re: Problema con ORDER BY | 
| Date: | 2012-09-11 19:39:51 | 
| Message-ID: | 1347392163-sup-4816@alvh.no-ip.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Omar Beltrán Cano | 2012-09-11 20:05:13 | Extraños rollback | 
| Previous Message | Jose Ayala - CROMOTEX | 2012-09-11 19:08:19 | Re: Problema con ORDER BY |