On Wed, 30 Jul 2008 15:37:17 -0500
"Jaime Casanova" <[EMAIL PROTECTED]> wrote:

> On Thu, Jun 26, 2008 at 7:27 AM, Alvaro Herrera
> <[EMAIL PROTECTED]> wrote:
> > Daniel Hernández escribió:
> >> Hola, parece que los mails que he enviado no han llegado, no lo he
> >> visto en los archivos, así que pregunto de nuevo.
> >>
> >> Tengo una tabla como esta:
> >>
> >> CREATE TABLE t (x double precision primary key, ...);
> >>
> >> y quiero obtener el elemento cuyo valor sea más cercano a un valor dado
> >> x0.
> >
> > Usa un UNION, por ej.
> >
> > select * from (
> >        (select * from t where x < 0.4 order by x desc limit 1)
> >        union all
> >        (select * from t where x > 0.4 order by x limit 1)
> >        ) qqch
> > order by abs(x - 0.4);
> >
> > O sea tomas el mas cercano hacia arriba y hacia abajo, y luego escoges
> > uno de entre ellos.
> >
> 
> tenia este mail guardardo para chequearlo cuando tuviera tiempo...
> que pasa si en el conjunto de valores esta incluido x?
> no deberia uno de los select admitir tambien los iguales?

Claro, yo puse >=, para resolver eso.
Saludos,

-- 
Daniel Hernández
http://www.scio.cl
--
TIP 7: no olvides aumentar la configuración del "free space map"

Responder a