> > SELECT * FROM t ORDER BY abs(x - x0) LIMIT 1;
>
> no entiendo como resuelve tu problema este SELECT, podrias dar un
> ejemplo poniendo valores?
La idea es que si tienes los valores de x = {1,12,30,102,340,323} y
buscas con x0 = 104 te entregue el registro con x = 102.
> > Pero me tinca que podría estar calculando la función abs para todos los
> > registros de la tabla, lo que no aprovecharía el índice B-Tree en la
> > columna x.
>
> creas un indice funcional
> create index idx1 on tabla (abs(x));
No sabía que existían los índices funcionales, pero de todos modos la
solución que me dio Alvaro Herrera es lo que quería.
Saludos
--
Daniel Hernández
http://www.scio.cl
--
TIP 7: no olvides aumentar la configuración del "free space map"
No comments:
Post a Comment