SQL teradata在列中搜索字符串并创建一个新列

时间:2019-05-19 05:42:23

标签: sql regex search teradata-sql-assistant

我有如下数据。我想在column2和column3中搜索一些文本,如果找到这些文本,则创建新的列。我想搜索以下两个词

  1. 美国-简单的字符串搜索
  2. ACH-正则表达式搜索,因为ACH是     缩写,我不想返回诸如beach, peach等的单词。     我想找到类似ACH, ACH., ACH?等的单词

enter image description here

我想要的

输出如下

enter image description here

  1. america列的第一行有1,因为找到了americacolumn2column3
  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
    

0 个答案:

没有答案