К> for select id, name from tovar
К> where ((:typesearch = 1) and (name = :searchstr))
К> or ((:typesearch = 2) and (name like :searchstr || '%'))
К> or ((:typesearch = 3) and (name like '%' || :searchstr || '%'))
К> do ....
К> вроде элементарно, оптимизатор правда пишет:
К> PLAN (TOVAR T INDEX (TOVAR_NAME))
К> НО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
К> Я думаю ты будешь удивлён ;)
if typeSearch=1
then for select id, name from tovar
where (name = :searchstr)
do select from sub_routine..........
if typeSearch=2
then for select id, name from tovar
where (name like :searchstr || '%')
do select from sub_routine..........
if typeSearch=3
then for select id, name from tovar
where (name like '%' || :searchstr || '%')
do select from sub_routine..........
где sub_route - процедура куда запихано то что у тебя после do
и все работает быстро и запросы элементарные и гибко очень.
--
С уважением
Кочмин Александр