Sebastián Villalba escribió:
> Hola Marcos.
> 
> On Mon, 14 Jul 2008 10:22:07 -0400, Marcos Saldivar wrote
> > Estimados tengo la siguiente duda, para una consulta como esta:
> > 
> > select * from foo where foo.permiso = 'todos' or 1950 in (select
> > miembro from miembros_grupos)
> > 
> > Al cumplirse la condición "foo.permiso = 'todos'" es valido pensar 
> > que la sub consulta jamas se ejecutara ????
> 
> Muy válido. Saludos!

No necesariamente ... me parece que SQL no garantiza que las condiciones
se evalúan de izquierda a derecha ...

Supongo que es posible que por una cosa de rendimiento la condición que
involucra la constante sea ejecutada antes que la otra, y que el motor
se tome la libertad de eliminar el subselect.  Por otro lado supongo que
si el subselect incluyera cosas como una funcion volátil, no podría hacerlo.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a