Hola.
No sé que puede estar mal en tu consulta (a primera vista parece que todo esté bien). Aunque te aconsejo de cambiar la condición por :
and (:V_CLASIFICADOR is null or C.CLASIFICADOR starting with :V_CLASIFICADOR)
Ahora en el parámetro debes poner '01' en lugar de '01%'.
La razón de que prefiera esta sintaxis, es porqué Interbase/Firebird podrá aprovechar un índice sobre el campo V_CLASIFICADOR en caso que exista. Cosa que no podía hacer con el Like.
Nota: Tanto si usas el Like o el Starting with, el RTrim que haces no es necesario. Puesto que tu comparas el inicio de cadena del campo, y es indiferente si detrás hay espacios en blanco o no. (Y solo por el hecho de poner el RTrim probablemente ya estés impidiendo que se optimize la consulta con un índice).
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Última edición por guillotmarc fecha: 19-07-2003 a las 21:41:02.
|