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

如何使用SQL提取分隔符间的第2个子串?无需新增列

提取分隔列中第二个值的简化SQL写法

你可以直接通过嵌套调用字符串函数,一步提取出目标值,无需生成中间冗余列:

SELECT 
    SUBSTRING(
        cookie_data,
        CHARINDEX(' | ', cookie_data) + 3,
        CHARINDEX(' | ', cookie_data, CHARINDEX(' | ', cookie_data) + 3) - (CHARINDEX(' | ', cookie_data) + 3)
    ) AS email
FROM TABLE

逻辑说明:

  • CHARINDEX(' | ', cookie_data) 定位第一个分隔符的起始位置,加3是跳过|这三个字符(空格+竖线+空格)
  • CHARINDEX(' | ', cookie_data, CHARINDEX(' | ', cookie_data) + 3) 从第一个分隔符的后方开始搜索,定位第二个分隔符的起始位置
  • 用第二个分隔符的位置减去「第一个分隔符位置+3」的数值,得到目标内容的长度,通过SUBSTRING直接提取出第二个值

针对示例数据732711 | 732711@soundcorp.com | 732711 Store,这个语句会直接返回732711@soundcorp.com。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:42:09