Re: [pgsql-es-ayuda] Ordenar resultado por números en campo varchar

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Oswaldo Hernández <listas(at)soft-com(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Ordenar resultado por números en campo varchar
Date: 2010-10-06 22:50:08
Message-ID: AANLkTikKgoK5Yz1DSo1mG0N5sSK_0UuDwWoyjvOz_VQw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Simplemente genial....

2010/10/2 Oswaldo Hernández <listas(at)soft-com(dot)es>:
> El 30/09/2010 18:22, Rodrigo Ruiz escribió:
>>
>> Estimados,
>> 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
>> 107 | texto 5 | 1.2
>> 108 | texto 6 | 1.3
>> 109 | texto 7 | 1.4
>> 110 | texto 8 | 1.5
>> 111 | texto 9 | 1.6
>> 112 | texto 10 | 1.7
>> 113 | texto 11 | 1.8
>> 114 | texto 12 | 1.9
>> 117 | texto 2 | 2.1
>> 118 | texto 3 | 2.2
>>
>> El campo indice es un varchar, si notan, luego del punto 1.1 salta al
>> 1.10, el cual necesito se presente siguiendo al punto 1.9.
>> Intenté pasando el campo a numérico con cast, sin embargo se me
>> complicó, pues podrían existir puntos del tipo 1.2.6 o más detallado aún.
>> La pregunta ya la podrán adivinar, cómo podría obtener el resultado de
>> la consulta de manera ordenada por índice?
>>
>
>
> select indice
> from (values ('4.0.3.2'), ('1.2.3.4'), ('2.3.4.5'),
>    ('20.3.1'), ('20.3'), ('4.1'), ('10.3'),
>    ('0.5'), ('10.2.7')
>  ) foo(indice)
> order by regexp_split_to_array(indice, E'\\.')::integer[];
>
>  indice
> ---------
>  0.5
>  1.2.3.4
>  2.3.4.5
>  4.0.3.2
>  4.1
>  10.2.7
>  10.3
>  20.3
>  20.3.1
> (9 filas)
>
>
> :)
>
> --
> Oswaldo Hernández
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

--
Saludos,
Horacio Miranda Aguilera.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2010-10-06 22:52:10 RE: tunning
Previous Message Edwin Quijada 2010-10-06 22:35:15 RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] importación de datos