create table ter (
ID number,
category varchar2(250 byte),
name varchar2(250 byte)
);
insert into ter values (1, 'amd-visual theraphy','john');
insert into ter values (1, 'amd-visual theraphy','mike');
insert into ter values (2, 'amd-autmatic theraphy','mike');
insert into ter values (3, 'amd-autmatic theraphy','drane');
insert into ter values (3, 'cmd autmatic theraphy', 'traverse');
insert into ter values (3, 'amd-dramatic theraphy','drane');
insert into ter values (3, 'cmd-dropertic theraphy', 'traverse');
insert into ter values (5,'qwd-dropertic visual-theraphy','drones');
insert into ter values (5,'qwd-aromatic-theraphy','drones');
insert into ter values (3, 'other', 'traverse');
insert into ter values (3, 'other', 'traverse');
1: & категория пуста показать все записи
2: & категория не равна нулю, и если я введу категорию = визуально, автоматически, то отобразится соответственно
3 & категория не равна нулю, и если я введу категорию = драматический, он должен отображать драматический и дропертный режим, игнорируя другие результаты;
как драматическое и неряшливое является требованием, когда пользователь хочет видеть и игнорирует, если частичное значение совпадает с визуальным и автоматическим, содержит
как получить этот результат
это то, что дал мне решение, но все же я хочу игнорировать визуальное, содержащее дропетику
select *
from ter t cross join (select '&category' as my_categ from dual) m
where m.my_categ is null
or m.my_categ in ('visual', 'autmatic', 'dramtic') and t.category like '%'
|| m.my_categ || '%'
or m.my_categ = 'dramtic' and t.category like '%dropertic%' ;