【问题标题】:How to read string from right PLSQL如何从正确的 PLSQL 读取字符串
【发布时间】:2012-02-27 07:13:11
【问题描述】:

在表格列中,我有这个值:

DV-2011-01-000004(数据类型为varchar2)

我怎样才能得到字符串'000004'的一部分?在 t-sql 中,他们有这个 right() 函数,但在 PL SQL 中,我似乎找不到像 t-sql 中的 right() 一样的函数。

感谢您的帮助。

【问题讨论】:

  • 为了这个问题可以帮助未来的开发人员:请编辑您的问题以准确说明您的要求 - 您想获取最后一个“-”之后的字符串,还是您想要只获取最右边的 6 个字符?

标签: plsql plsqldeveloper


【解决方案1】:
substr('DV-2011-01-000004', length('DV-2011-01-000004')-6 + 1 )

【讨论】:

  • 好吧,让他决定吧,我一般是针对通用解决方案而不是具体解决方案。
  • 我们无法确切知道他们需要什么决定。可能是我的解决方案是通用的
  • 由于 OP 没有指定如何识别字符串的最后一部分(固定长度或字符),所以这个答案和另一个答案一样“一般”。
【解决方案2】:

你可以使用:

 SUBSTR('DV-2011-01-000004', INSTR('DV-2011-01-000004', '-', -1) +1)

当使用带有负起始位置的INSTR 时,他会找到“-”的最后一个索引。 然后SUBSTR 将从这个事件中删除直到结束(因为我没有提供长度)

【讨论】:

  • 在 pl/sql 双引号中用于标识符,而不是字符串
猜你喜欢
  • 2017-11-26
  • 2022-01-12
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
相关资源
最近更新 更多