2016-06-09 3 views
0

У меня есть вид, который имеет столбец VARCHAR2. Столбец содержит строку , которая представляет собой конкатенацию из двух столбцов из другой таблицы.PLSQL поисковая строка с использованием LIKE назад

Например, я ищу «Джеймс Смит». Я ищу столбец с помощью LIKE:

LOWER(USER_LIST.SEARCH_STRING) LIKE LOWER 'James Smith' 

получить результаты просто отлично. Я хотел бы знать, если есть возможность выполнить обратный поиск (по-прежнему с помощью LIKE) и получить те же результаты, как и так:

LOWER(USER_LIST.SEARCH_STRING) LIKE LOWER 'Smith James' 

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

Заранее спасибо.

ответ

1

Надеюсь, что нижеследующий ответ иллюстрирует ваше требование.

SELECT A.NM 
FROM 
    (SELECT 'Avrajit Roy' nm FROM dual 
)A 
WHERE lower(A.NM) LIKE lower('avrajit roy') 
OR TRIM(lower(SUBSTR(a.nm,instr(a.nm,' ',1)+1,LENGTH(a.nm)) 
    ||' ' 
    ||SUBSTR(a.nm,1,instr(a.nm,' ',1)))) LIKE lower('roy avrajit');