1

我有一个简单的字符串操作要在 Oracle 中完成,但找不到方法。假设定界符为 '-' 如果输入 str = 'abc-123-xyz-456' 和 lines = 1 那么输出应该是 'abc' 我得到这个使用

select substr('abc-123-xyz-456',1,instr('abc-123-xyz-456','-')-1) from dual;

如果行 = 2,那么我需要输出为 abc-123

如果行 = 3,那么我需要输出为 abc-123-xyz 等等

我无法以有效的方式解决这个问题。提前致谢

4

1 回答 1

3

我找到了一个很酷的解决方案:

select substr('abc-123-xyz-456',1,instr('abc-123-xyz-456','-',1,n)-1) 
  from dual;

其中 n 是行数。让我知道是否有更好的方法,

于 2012-11-19T20:07:13.437 回答