gpt4 book ai didi

sql - Oracle regexp_substr - 查找并提取列中的所有匹配项

转载 作者:行者123 更新时间:2023-12-03 09:15:02 27 4
gpt4 key购买 nike

我正在使用 Oracle 数据库,我正在尝试查找并提取与特定模式匹配的字符串中的所有匹配项...

应该是 3 个字母,3 个数字,然后可能是字母,也可能不是

我试过这个:

SELECT REGEXP_SUBSTR(my_column, '[A-Za-z]{3}(\d)(\d)(\d)') AS values 
FROM my_table

但它只返回第一次出现的情况。

使用

REGEXP_SUBSTR(my_column, '[A-Za-z]{3}(\d)(\d)(\d)', 0, 0, 'i')

也不起作用

有人有什么想法吗?

编辑:

我正在尝试从 PLSQL 文件中提取它。所以它很像 SQL 查询,比如

select * 
from abc123
where some_value = 'some_value'

最佳答案

尝试此查询来打破ABC123CDE456FGHI789序列

with mine as (select 'ABC123CDE456FGH789' hello from dual) 
select regexp_substr(hello, '[A-Za-z]{3}(\d){3}', 1, level) STR from mine
connect by regexp_substr(hello, '[A-Za-z]{3}(\d){3}', 1, level) is not null

输出

ABC123
CDE456
GHI789

为了获得特定的位置,那么你想使用

select regexp_substr('ABC123CDE456FGH789', '[A-Za-z]{3}(\d){3}', 1, i) STR from dual

根据位置更改 i 值,例如

select regexp_substr('ABC123CDE456FGH789', '[A-Za-z]{3}(\d){3}', 1, 1) STR from dual

输出:

ABC123

关于sql - Oracle regexp_substr - 查找并提取列中的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738732/

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