Excerpts from Rodrigo Ruiz's message of jue sep 30 12:22:14 -0400 2010:

Hola Rodrigo,

> la siguiente representa parte del resultado de una consulta sobre una 
> tabla y que se ordena por el campo 'indice' de forma ascendente.
> 
> # select * from tabla order by indice asc;
> 
>   id | titulo   | indice
> ----+----------+--------
> 106 | texto 4  | 1.1
> 115 | texto 13 | 1.10
> 116 | texto 1  | 1.11

¿Tienes un límite de la profundidad de la jerarquía?  Una posibilidad es
multiplicar cada parte, por ej. procesar 1.2 para que dé 10200000
(1 * 1000000 + 2 * 10000 + 0 * 100 + 0 * 1) y ordenar por esas
cantidades.  Pero si puedes llegar a tener 1.2.3.4.5.6.7 se pone más
difícil.

Quizás podrías usar algo como esto: http://pgfoundry.org/projects/pgrpm/
(No sé qué tan al día esté el código), que provee operadores para
comparar números de versión, que debería ser bastante similar a lo que
quieres hacer aquí.

Otra alternativa sería explorar el contrib ltree a ver si provee
operadores que te sean de utilidad.

Saludos

-- 
Álvaro Herrera <[email protected]>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a