gpt4 book ai didi

sql - 在字符串中查找第二组数字(SQL/PL-SQL)

转载 作者:行者123 更新时间:2023-12-04 21:57:13 26 4
gpt4 key购买 nike

我有一个可能属于以下类型的字符串

string          expected result
15-th-rp 15
15/12-rp 12
15-12-th 12
4-5-6 5

现在我必须找到数字,1) 如果一个字符串只包含 1 个数字集,那么将显示相同的数字。2)如果字符之间有多组数字,那么我必须找到第二组数字。请帮帮我。

  with a as (
select '15-th-rp' as data from dual
union all
select '15/12-rp' from dual
union all
select '15-12-th' from dual
union all
select '4-5-6' from dual
)
select regexp_substr(data,'[0-9]+',REGEXP_INSTR(data,'[/|-]')+1) from a;

最佳答案

我想这就是你所追求的:

with a as (select '15-th-rp' data from dual union all
select '15/12-rp' data from dual union all
select '15-12-th' data from dual union all
select '4-5-6' data from dual)
select data,
coalesce(regexp_substr(data,'[0-9]+',1,2),
regexp_substr(data,'[0-9]+',1,1)) extracted_data
from a;

DATA EXTRACTED_DATA
-------- --------------
15-th-rp 15
15/12-rp 12
15-12-th 12
4-5-6 5

使用 COALESCE 的好处是它不会评估第二个(以及后续)参数,除非它们是必需的。

关于sql - 在字符串中查找第二组数字(SQL/PL-SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com