【问题标题】:Oracle - Selecting a string before a specific stringOracle - 在特定字符串之前选择一个字符串
【发布时间】:2020-05-12 12:23:37
【问题描述】:

例如,我有一个字符串“TARGET CONSUMER CLAIM”,我想选择“CLAIM”之前的所有字符串。我的输出应该是“目标消费者”。我尝试了 regexp_substr 和 instr 命令的 substr,但无法得到正确答案

【问题讨论】:

标签: sql oracle


【解决方案1】:

使用正则表达式替换功能REGEXP_REPLACE 删除不需要的部分:

REGEXP_REPLACE(col1, ' CLAIM.*', '')

【讨论】:

    【解决方案2】:

    您可以使用INSTR 在字符串中查找CLAIM 的位置,然后使用SUBSTR 提取该位置之前的字符串部分:

    SELECT SUBSTR('TARGET CONSUMER CLAIM', 1, INSTR('TARGET CONSUMER CLAIM', ' CLAIM') - 1) FROM dual
    

    输出

    TARGET CONSUMER
    

    【讨论】:

      【解决方案3】:

      您也可以使用 REGEXP_INSTR:

      select substr('TARGET CONSUMER CLAIM',1,REGEXP_INSTR('TARGET CONSUMER CLAIM', '(\s)+CLAIM')-1) 
      from dual;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-22
        • 1970-01-01
        • 2020-12-30
        • 2020-03-27
        • 2016-07-08
        • 2021-12-01
        • 2021-09-11
        相关资源
        最近更新 更多