[英]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.