У меня есть данные, как показано ниже. Я хочу найти некоторый текст в column2 и column3 и создать новые столбцы, если эти тексты найдены. Я хочу найти два слова, как показано ниже
- америка - простой поиск строки
- ACH - поиск по регулярному выражению, поскольку ACH является
сокращение, и я не хочу возвращать такие слова, как
beach, peach
и т. д.
Я хотел бы найти такие слова, как ACH, ACH., ACH?
и т. Д.
вывод, который я хочу, как показано ниже
- столбец
america
имеет 1 в первой строке, потому что america
был найден
в column2
и column3
- столбец
ach
имеет 1 в последнем ряду, потому что ach
был найден в
column2
Я пробовал пару ссылок, но они объясняют, как фильтровать данные на основе определенного поиска по ключевым словам. Я хотел бы знать, как создавать столбцы на основе поиска по ключевым словам.
------------------------------------- обновление 1
- Будет ли работать код ниже?
будет игнорировать регистр данных?
select column3, column2,
CASE WHEN column3 like '%america%' THEN 1
WHEN column2 like '%america%' THEN 2
ELSE 0
END as Find ,
CASE WHEN REGEXP_SUBSTR(column3,'\bach\b')='audit' THEN 1
WHEN REGEXP_SUBSTR(column2,'\bach\b')='audit' THEN 2
ELSE 0
END as match2,
(Find+match2) as summation
from r00
where summation>1