[Pgsql-ayuda] Aligerar consulta

From: Gunnar Wolf <gwolf(at)gwolf(dot)cx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: [Pgsql-ayuda] Aligerar consulta
Date: 2004-01-09 23:56:23
Message-ID: 20040109235623.GA9803@gwolf.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Me aventé esta consultita, que sencillamente me da asco, y espero que
alguno de ustedes me pueda sugerir cómo mejorar:

SELECT campos FROM tabla
WHERE now()::date BETWEEN initial_date AND final_date OR
(now()::date > initial_date AND final_date IS NULL) OR
(initial_date IS NULL AND final_date < now()::date) OR
(initial_date IS NULL AND final_date IS NULL)

Tengo varias quejas ante mi query... Primero que nada, hay una
cantidad espantosa de comparaciones buscando NULLs que pueden darnos
dolores de cabeza de uno y de otro lado. Por otro lado, evalúo
now()::date en tres ocasiones, lo cual no es precisamente
eficiente. ¿Alguien tiene una sugerencia para desafearla?

Saludos,

--
Gunnar Wolf - gwolf(at)gwolf(dot)cx - (+52-55)5630-9700 ext. 1366
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Manuel Sugawara 2004-01-10 00:47:43 Re: [Pgsql-ayuda] DeadLock
Previous Message Edwin Quijada 2004-01-09 23:13:57 [Pgsql-ayuda] DeadLock