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 に答える