【问题标题】:how to split the value in oracleoracle中如何拆分值
【发布时间】:2016-07-22 18:15:41
【问题描述】:

我曾使用过 MySQL,并且是 oracle 的新手。在 MySQL 中我们有一个函数 SUBSTRING_INDEX(),我想在 oracle 中替换它,请帮忙

 SQL>select SUBSTRING_INDEX('JD;EQ;0001', ';', -1) from dual;

结果:

0001

我希望在 oracle 中得到相同的结果。 oracle中是否有任何函数在oracle中返回相同的结果?

我已经尝试过,但没有预期的结果。

  SELECT substr('CLUBORACLE',3,2) RES FROM dual; 

【问题讨论】:

  • 我想你会发现这是一个有用的资源:@​​987654321@

标签: sql oracle


【解决方案1】:
SELECT SUBSTR('JD;EQ;0001', INSTR('JD;EQ;0001', ';', -1) + 1) FROM dual

在上面的查询中,INSTR('JD;EQ;0001', ';', -1) 将返回6,这是表达式中最后一个分号的位置。您想从最后一个分号之后到字符串末尾的位置获取子字符串。

查看here,了解有关 Oracle 的 INSTR 的一个很好的 SO 问题。

【讨论】:

    【解决方案2】:

    您也可以使用正则表达式:SELECT REGEXP_SUBSTR('JD;EQ;0001', '[^;]+', 1, your_occurance_number) FROM dual;,但 SUBSTR+INSTR 应该更快。

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 2015-04-01
      • 2018-03-26
      • 2015-10-06
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      相关资源
      最近更新 更多