簡體   English   中英

Oracle-如何提取定界字符串

[英]Oracle - How to extract delimited string

我有一個示例字符串如下,

A|SDFR|RESTA|PRET|PRUQA
B|121|BBCTRI|9ALFA|DEV|5AS

我想提取發送定界符之后的部分,

預期,

RESTA|PRET|PRUQA
BBCTRI|9ALFA|DEV|5AS

我得到的只是提取單個字符regexp_substr

假設您的意思是在第二個定界符之后,則無需為此使用正則表達式。 您可以使用基本的] substr() ]( http://docs.oracle.com/database/121/SQLRF/functions196.htm )函數,使用instr()獲得起始位置:

substr(<your_string>, instr(<your_string>, '|', 1, 2) + 1)

instr()的第三個參數表示您希望第二次出現; 第二個參數表示您從位置1開始。然后指向第二個定界符,您想從該定界符后的下一個字符開始,因此必須加1。

演示:

with t (str) as (
  select 'A|SDFR|RESTA|PRET|PRUQA' from dual
  union all select 'B|121|BBCTRI|9ALFA|DEV|5AS' from dual
)
select substr(str, instr(str, '|', 1, 2) + 1)
from t;

SUBSTR(STR,INSTR(STR,'|',1
--------------------------
RESTA|PRET|PRUQA
BBCTRI|9ALFA|DEV|5AS

嘗試這個:

substr(string, instr(string, '|', 1, 2)+1)

也許是這樣;

with a as (select 'B|121|BBCTRI|9ALFA|DEV|5AS' test from dual)
select substr(test,instr(test,'|',3)+1) from a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM