Hola Herman
El filtro no debería aplicarse sobre la llave foranea ID_TIP_REG, la consulta hipotética seria algo así: SELECT campos FROM tabla1 AS a JOIN PRD_REG AS b ON a.ID_TIP_REG=b.ID_TIP_REG WHERE b.*NOM_TIP_REG like param*: donde *param* puede ser cualquier de los valores del dominio (DETALLADO,MARCADO...) o % para el caso de todos. Por lo tanto la función que implemento no debe recibir el ID_TIP_REG sino el valor de NOM_TIP_REG ya que, según menciono, igual hace el JOIN con la otra tabla, la recomendación es que la llave foranea ID_TIP_REG en tabla1 debería estar indexada El 21 de junio de 2016, 19:47, Herman Estaban<hermanesta...@gmail.com> escribió: > Gracias por las respuestas. > > Voy a explicar mejor lo que requiero. > > Tengo una tabla PRD_REG con 02 campos: > > ID_TIP_REG INTEGER > NOM_TIP_REG VARCHAR(25) > > Esta tabla tiene 14 registros y esta registrado asi: > > ID_TIP_REG | NOM_TIP_REG > 1 | DETALLADO > 2 | MARCADO > 3 | PROGRAMADO > 4 | CON DISEÑO > 5 | SIN DISEÑO > . > . > . > 99 | SIN REGISTRAR > > He creado un funcion, que tiene un parametro (param) de tipo INTEGER, en > esta funcion la que esta tabla PRD_REG se cruza con JOIN con otra tabla y > en el WHERE quiero usar un LIKE ya que el usuario puede elegir cualquiera > de los codigos de la tabla PRD_REG, como tambien todos por eso necesito el > LIKE. > > Por eso utilizo esto: > WHERE CAST(ID_TIP_REG AS CHAR) LIKE param; > > Pero que tan eficiente es usar LIKE con campos INTEGER, es una practica > recomendable? > > Debo trabajar con campos CHAR para usar el LIKE quizas por rapides? > > Saludos. > > > > > -- Cordialmente, Ing. Hellmuth I. Vargas S. Esp. Telemática y Negocios por Internet Oracle Database 10g Administrator Certified Associate EnterpriseDB Certified PostgreSQL 9.3 Associate