Indices - Ordenar por texto ascendente y fecha descendente

955 views
Skip to first unread message

Ivan Delvalle

unread,
Jan 24, 2014, 8:39:20 AM1/24/14
to publice...@googlegroups.com
Hola,

Tengo un sistema antiguo donde requiero un indice que ordene por un campo de texto de forma ascendente y luego por un campo de fecha de forma descendente.

He pensado en algo así como:

INDEX ON campo_texto + PADL(INT(100000000 - VAL(DTOC(campo_fecha, 1))), 9, '0') TAG idxa

Creen que me puede dar algún problema? Hay alguna alternativa mejor?

Gracias,

Ivan

Luis Maria Guayan

unread,
Jan 24, 2014, 9:08:19 AM1/24/14
to publice...@googlegroups.com
La mejor alternativa (IMHO) es tener un índice por campo y para buscar o listar el/los registro/s lo haces con un SELECT

INDEX ON campo_texto TAG Campo_Texto
INDEX ON campo_fecha TAG Campo_Fecha

Para listar:
SELECT * FROM MiTabla ;
ORDER BY Campo_Texto, Campo_Fecha DESC





Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Luis Maria Guayan

unread,
Jan 24, 2014, 9:16:31 AM1/24/14
to publice...@googlegroups.com
De todas maneras si deseas o necesitas hacerlo con un índice compuesto lo puedes hacer con:

INDEX ON campo_texto +  TRANSFORM(DATE(9999,01,01) -
campo_fecha, "@L 999999999")


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Fernando D. Bozzo

unread,
Jan 24, 2014, 10:19:49 AM1/24/14
to publice...@googlegroups.com
La primera alternativa que te dá Luis María es la más flexible, en cuanto a que los podés usar en conjunto o por separado.
La segunda alternativa, de la clave compuesta, es la más óptima si vas a usar siempre el mismo indice o su inverso.




Ivan Delvalle

unread,
Jan 24, 2014, 6:41:16 PM1/24/14
to publice...@googlegroups.com
Necesito un índice compuesto, por lo que la solución de Luis María con el TRANSFORM y la diferencia de fechas (supongo que con DATE(9999, 12, 31)) es lo que estaba buscando. Ha sido uno de esos días en los que a uno le cuesta un poco pensar, y veo que me estaba complicando demasiado. Por eso pregunté.

Gracias por vuestras respuestas.

Saludos,

Ivan



2014/1/24 Fernando D. Bozzo <fdb...@gmail.com>

HernanCano

unread,
Jan 24, 2014, 6:52:35 PM1/24/14
to publice...@googlegroups.com
Iván:
No creas que eres el único al que le cuesta un poco pensar.
Yo lo hago (pongo mi cerebro a pensar), pero este tipo de genialidades sólo se le ocurren a Luis y a Fernando.

Bien por ellos.

Y por nosotros que participamos de este foro!!!

Dios los bendiga. Dios nos bendiga.

Jorge Kiernan

unread,
Jan 27, 2014, 11:56:25 AM1/27/14
to publicesvfoxpro
Luis Maria, brillantemente simple como siempre. 
Reply all
Reply to author
Forward
0 new messages