Пользовательский фильтр и применить индекс Char в Oracle - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь применить логику фильтрации, а также осуществлять поиск по определенной строке в столбце, но не могу понять это.

Вот пример сценария ниже:

CREATE TABLE [Test](
    service_id int,
    category_id int,
    employee_name varchar(50)
    )

insert into Test values (38756,201830,'kalyan');
insert into Test values (38366,201790,'kalyan');
insert into Test values (38756,201830,'kalyan');
insert into Test values (38366,201790,'kalyan');

CREATE TABLE [major](
spec_id int,
manager_name varchar(150)
)

insert into major values (38756,null);
insert into major values (38366,null);
insert into major values (38756,'Express Door for on going : DECLINE by kalyan');
insert into major values (38366,'Express door for on going : APPROVE by Joy kalyan')\
insert into major values (38366,'Request required');

Запрос, который я пытался:

select distinct service_id, 
category_id, 
employee_name,
case when manager_name like 'Express Door%' then manager_name
     when manager_name like 'Express door%' then manager_name end as manager
  from Test
left join major on spec_id = service_id and manager_name is not null

Мой ожидаемый результат должен быть таким ((получить значение после строки (by) в поле менеджера)

service_id  category_id   employee_name        manager
38366         201790         kalyan            Joy kalyan
38756         201830         kalyan            kalyan

Заранее спасибо Swetha J

1 Ответ

0 голосов
/ 07 декабря 2018

Как насчет этого?

SQL> select distinct
  2    t.service_id,
  3    t.category_id,
  4    t.employee_name,
  5    substr(m.manager_name, instr(m.manager_name, 'by') + 3) manager
  6  from test t join major m on m.spec_id = t.service_id
  7  where instr(m.manager_name, 'by') > 0;

SERVICE_ID CATEGORY_ID EMPLOYEE_NAME        MANAGER
---------- ----------- -------------------- --------------------
     38366      201790 kalyan               Joy kalyan
     38756      201830 kalyan               kalyan

SQL>
...