【问题标题】:How to get a substring from a character on如何从字符中获取子字符串
【发布时间】:2020-09-25 08:08:23
【问题描述】:

我有一个包含 varchar2 列的表,其中有不同长度的字符串,我必须在字符“-”之后提取子字符串。

STRING_COL
afg a ga ga ga ggfdg - gfd g f
ok k ok o - gfs gsd gsg sd g sd
okk - jdjdjdj d d
...

我想在'-'字符之后得到所有内容

你能告诉我怎么做吗? 甲骨文10g

提前致谢! 标记

【问题讨论】:

    标签: sql string oracle oracle10g


    【解决方案1】:

    看起来不错,旧的 SUBSTR + INSTR 组合。如果要删除前导/尾随空格,请应用 TRIM

    SQL> select string_col,
      2    substr(string_col, instr(string_col, '-') + 1) result,
      3    --
      4    trim(substr(string_col, instr(string_col, '-') + 1)) trimmed_result
      5  from test;
    
    STRING_COL                                         RESULT               TRIMMED_RESULT
    -------------------------------------------------- -------------------- --------------------
    afg a ga ga ga ggfdg - gfd g f                      gfd g f             gfd g f
    ok k ok o - gfs gsd gsg sd g sd                     gfs gsd gsg sd g sd gfs gsd gsg sd g sd
    okk - jdjdjdj d d                                   jdjdjdj d d         jdjdjdj d d
    
    SQL>
    

    【讨论】:

    • @Mark:通过单击复选标志考虑accept it 的答案。这向社区表明您的问题已得到解决(并奖励回答者!)。
    【解决方案2】:

    你可以使用regexp_substr():

    select regexp_substr(string_col, '[^-]+$')
    

    Here 是一个数据库小提琴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2015-11-04
      • 2014-05-26
      • 1970-01-01
      相关资源
      最近更新 更多