Кредитное плечо Oracle Параметр Subexrpession для проверки на CT
Я бы использовал использование подвыражений для использования шаблона, подобного этому:
'regexp_substr(description, '(^| )((ct ).*((CHEST)|(THOR)|(LUNG)))', 1, 1,'i', 2)`
-выражение 1 для поиска начала строки или пробела: (^| )
-выражение 3 для поиска 'CT': (ct )
-дальнее других символов:. *
-подвыражения 5,6,7: (CHEST)|(THOR)|(LUNG)
-выражение 2, которые содержат подвыражение 3, подвыражение 4
Я использую последний необязательный параметр, чтобы определить, что я хочу подвыражение 2.
WITH test (id, description) as (
SELECT 1
, 'CT CHEST HIGH RESOLUTION , NO CONTRAST'
FROM dual
UNION ALL --want this
SELECT 2
, 'INJECTION , THORACIC TRANSFORAMEN EPIDURAL , NON NEUROLYTIC W IMAGE GUIDANCE.'
FROM dual
UNION ALL --do not want this
SELECT 3
, 'The cow came back. But the dog went FOR a walk'
FROM dual
) --do not want this
SELECT id
, description
, regexp_substr(description, '(^| )((ct ).*((CHEST)|(THOR)|(LUNG)))', 1, 1,'i', 2)
FROM test;