繁体   English   中英

使用SQL从字段中的任意位置提取字段中的定界子字符串

[英]extract delimited substring from field from arbitrary positions in the field using SQL

我正在尝试从以下字段中提取以下子字符串,该字段包含由下划线定界的字符串,其中子字符串可能不在每个单元格中的相同位置

a_bsdf_cat123_adsd_esdf
a_cat345_zasd_weaq
cat123213_sdfa_sadfas_23dsafa
z_cat987_cat123_sdfaef

我想提取以字母“ cat”开头的第一个下划线分隔的子字符串。 所以在上面的例子中,我想提取

a_bsdf_cat123_adsd_esdf             -> cat123
a_cat345_zasd_weaq                  -> cat345
cat123213_sdfa_sadfas_23dsafa       -> cat123213
z_cat987_cat123_sdfaef              -> cat987

我知道如何使用substr()和instr()函数提取子字符串,但是当它位于字段中的不同位置时,则不知道。 那怎么办?

我需要从Oracle和MySQL中提取该文件。

更新:


两者都尝试一下:

REGEXP_SUBSTR(field, '[^|_]+cat[^_]*');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM