あなたは常に少なくとも一つの発生'|'
のを持っていると仮定すると、あなたはありません正規表現で、次のように使用することができます:あなたも対処しても同じことを達成するために正規表現を使用するか、または可能性があり
with test(string) as (select '53|100382951130|25.0' from dual)
select substr(string, 1, instr(string, '|')-1)
from test
with test(string) as (
select '53|100382951130|25.0' from dual union all
select '1234567' from dual)
select string,
substr(string, 1, instr(string, '|')-1),
regexp_substr(string, '[^|]*')
from test
あなたも、正規表現なし'|'
が生じないとのケースを扱うことができます:あなたは何'|'
を持っていないする場合
with test(string) as (
select '53|100382951130|25.0' from dual union all
select '1234567' from dual)
select string,
substr(string, 1, instr(string, '|')-1),
regexp_substr(string, '[^|]*'),
substr(string, 1,
case
when instr(string, '|') = 0
then length(string)
else
instr(string, '|')-1
end
)
from test
ありがとうございます。それは私を分類した –