Olá, Bom, não coloquei exemplo porque imaginei que não seria preciso. De forma alguma foi com a intenção de esconder algo. Isso não faz parte do meu conceito, uma vez que estou aqui para ser ajudado e também ajudar os outros. Mas vamos lá. a function "MinhaFunção" irá retorna 0 ou 1. vejam o exemplo ////////////////// Função delimiter $$ CREATE function MinhaFuncao ( cod_cliente ) returns DECIMAL( 1,0 ) deterministic BEGIN DECLARE nRetorno DECIMAL(1,0); DECLARE nAno DECIMAL(4,0); SELECT max( year(dt_pag) ) into nAno from pagamentos where cod_cliente = pagamentos.cliente ; if nAno = year( curdate() ) then SET nRetorno := 1; else SET nRetorno := 0; end if; return nRetorno; END $$ ////////////////// Fim Com esta função gostaria de, dentro dos futuros selects, carregar uma variável ao invés de ter que ficar repetindo a função, daí iria ganhar performance ao invés de ficar todo tempo recorrendo a esta função. Hoje o meu select ta assim: Select minhafuncao(clientes.codigo), clientes.* from clientes where minhafuncao(clientes.codigo) <> 0 e gostaria de tirar a função do where e testar uma variável se possível. Se não ficou claro, podem falar que tento explicar melhor. Um abraço, Alexandre