You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL SUBSTRING:提取列中分号分隔的首个邮箱地址

提取Oracle列中第一个分号分隔的邮箱地址

嘿,这个需求我之前也碰到过!刚好可以用Oracle的SUBSTR和INSTR这对组合来解决,完全符合你要的SUBSTRING相关方法的要求。

假设你的表名叫your_table,存储多邮箱的列是email_list,直接用下面的SQL就能拿到第一个邮箱:

SELECT 
  TRIM(SUBSTR(email_list, 1, INSTR(email_list, ';') - 1)) AS first_email
FROM your_table;

我给你拆解下每个部分的作用:

  • INSTR(email_list, ';'):定位字符串里第一个分号的位置。如果列里只有单个邮箱(没有分号),这个函数会返回0。
  • SUBSTR(email_list, 1, INSTR(...) - 1):从字符串开头(第1位)截取,长度是第一个分号的位置减1,这样就精准拿到了第一个分号前的内容。如果没有分号,INSTR返回0,那0-1=-1,这时候Oracle的SUBSTR会自动截取从开头到字符串结尾的全部内容,完美适配单个邮箱的情况。
  • TRIM():看你给的示例里有邮箱之间混了空格的情况(比如某个邮箱前面带空格),用这个函数可以把第一个邮箱前后的多余空格去掉,保证结果干净。

举个实际测试的例子:
如果email_list的值是aaaaaa.bbbbb.cccc@xyz.com;mmmm.cccc@xyz.com;...,这个SQL会返回aaaaaa.bbbbb.cccc@xyz.com;如果是单个邮箱pppp.gggg@xyz.com,也能准确返回这个邮箱。

内容的提问来源于stack exchange,提问作者Kate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:59:02