Я пытаюсь написать запрос для фильтрации результатов из двух столбцов параметризованного запроса.
CASE WHEN REGEXP_INSTR('%param1)s', '[|(\\\[]') > 0 AND REGEXP_LIKE(column1.'%param1)s')
THEN 'Y' END REGEXP_MATCH,
CASE WHEN REGEXP_INSTR('%param1)s', '[|(\\\[]') = 0 AND column1 LIKE '%(param1)s'
THEN 'Y' END LIKE_MATCH,
Это создает два столбца, REGEXP_MATCH и LIKE_MATCH.
Затем я хочу отфильтровать оба столбца. Если REGEXP_MATCH равен Y, используйте регулярное выражение для param1. Если LIKE_MATCH равен 'Y', тогда используйте оператор LIKE для param1, в противном случае используйте '*' и сопоставьте все.
Я не совсем уверен, что лучший способ сделать это, хотя.