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

如何在Teradata SQL中提取两个指定标识之间的字符串?

Teradata SQL提取指定分隔符间内容实现方案

方法1:正则函数REGEXP_SUBSTR(推荐,支持Teradata 14.10及以上版本)

直接通过正则捕获目标内容,写法简洁:

SELECT 
  REGEXP_SUBSTR(col1, 'LN1: (.*?)\|LN2:', 1, 1, 'i', 1) AS col1
FROM 你的表名;

参数说明:

  • 最后一位参数1代表返回正则表达式中第一个捕获组的匹配结果,也就是LN1: 和|LN2:之间的内容
  • 正则中的.*?为非贪婪匹配,确保只会匹配到首个|LN2:之前的内容,不会出现多匹配的问题
  • 'i'参数代表匹配时忽略大小写,如果你确认字段中都是大写的LN1、LN2标识,可以去掉该参数

方法2:字符串定位+截取(兼容所有Teradata版本)

如果数据库版本不支持正则函数,可以用基础字符串函数实现:

SELECT 
  SUBSTRING(
    col1 
    FROM STRPOS(col1, 'LN1: ') + 5 
    FOR STRPOS(col1, '|LN2:') - (STRPOS(col1, 'LN1: ') + 5)
  ) AS col1
FROM 你的表名;

逻辑说明:

  • STRPOS(col1, 'LN1: ')获取LN1: 的起始位置,加5是跳过LN1: 本身的5个字符
  • 截取长度为|LN2:的起始位置减去目标内容的起始位置,刚好拿到两个分隔符之间的所有内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 21:09:04