【问题标题】:delete from the request oracle all that is further words "info"从请求 oracle 中删除所有进一步的词“信息”
【发布时间】:2021-04-29 11:44:05
【问题描述】:

我有一个预言机请求。

    SELECT DISTINCT  
           to_char(to_date('1970/01/01 00:00:00','yyyy/mm/dd hh24:mi:ss') + rep.value_number/86400000, 'yyyy.mm.dd hh24:mi:ss') ||' '|| nvl(trns.representation, '')  transaction_number 
    FROM IOT_STREAM_ANALYTICS_LOG_REPRESENTATION rep
        LEFT join txn 
       on rep.VALUE_NUMBER = txn.transaction_value_number
        
        LEFT  JOIN IOT_STREAM_ANALYTICS_EVENT_LOG evlog
           ON rep.parent = evlog.id
         LEFT JOIN IOT_DEVICE_EVENT ev
           ON evlog.device_event = ev.id
         LEFT JOIN IOT_STREAM_ANALYTICS_TRANSACTIONS trns
           ON rep.value_number = trns.name
    WHERE lower(rep.key) = 'transaction'
          AND rep.value_number <> 0
          AND rownum = 1 

这个查询很简单,我正在寻找包含一些信息的截止日期。此查询有效,但我想从答案中删除一些内容。我的答案是一个模板:

2021.01.25 13:48:15 weight: 0 max weight: 35000 min weight: 1000 info: 37

我想从这个答案中删除单词 INFO 以及该单词之后的所有内容。我会很感激你的帮助!

【问题讨论】:

  • 看SUBSTR函数

标签: sql oracle oracle11g oracle-apex


【解决方案1】:

你可以使用下面的 regexp_substr 函数

regexp_substr(your_answer_column, '(.*?)info.*?$', 1, 1, 'i', 1)

【讨论】:

    【解决方案2】:

    最好的方法是使用 instr 和 substr。

    Substr(your_string, 1, instr(your_string, 'info') - 1)
    

    请注意,这将比regexp 表现更好,因为regexp 具有其自身的复杂性,并且与substrinstr 相比表现不佳。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 2016-09-03
      • 2021-08-11
      • 2012-06-11
      • 2022-01-26
      相关资源
      最近更新 更多