SQL teradata поиск строки в столбце и создание нового столбца - PullRequest
2 голосов
/ 19 мая 2019

У меня есть данные, как показано ниже. Я хочу найти некоторый текст в column2 и column3 и создать новые столбцы, если эти тексты найдены. Я хочу найти два слова, как показано ниже

  1. америка - простой поиск строки
  2. ACH - поиск по регулярному выражению, поскольку ACH является сокращение, и я не хочу возвращать такие слова, как beach, peach и т. д. Я хотел бы найти такие слова, как ACH, ACH., ACH? и т. Д.

enter image description here

вывод, который я хочу, как показано ниже

enter image description here

  1. столбец america имеет 1 в первой строке, потому что america был найден в column2 и column3
  2. столбец ach имеет 1 в последнем ряду, потому что ach был найден в column2

Я пробовал пару ссылок, но они объясняют, как фильтровать данные на основе определенного поиска по ключевым словам. Я хотел бы знать, как создавать столбцы на основе поиска по ключевым словам.

------------------------------------- обновление 1

  1. Будет ли работать код ниже?
  2. будет игнорировать регистр данных?

    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
    
...