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

Snowflake中使用REGEXP_SUBSTR提取管道分隔字段内的Litmus ID

解决竖线分隔字段中提取特定内容的问题

核心方案:使用正则匹配目标片段

不管目标内容处于哪个分隔段,只需匹配以Litmus ID:开头、直到下一个竖线(或字符串结尾)的内容即可。以下是不同数据库的具体实现:

Oracle 示例

SELECT REGEXP_SUBSTR(your_table.your_column, 
                    'Litmus ID: [^|]+') AS litmus_id
FROM your_table;

如果需要忽略大小写匹配(比如字段中可能出现litmus id:),添加'i'参数:

SELECT REGEXP_SUBSTR(your_table.your_column, 
                    'Litmus ID: [^|]+', 1, 1, 'i') AS litmus_id
FROM your_table;

MySQL 8.0+ 示例

SELECT REGEXP_SUBSTR(your_table.your_column, 
                    'Litmus ID: [^|]+') AS litmus_id
FROM your_table;

PostgreSQL 示例

PostgreSQL 使用substring函数结合正则实现:

SELECT substring(your_table.your_column 
                 FROM 'Litmus ID: [^|]+') AS litmus_id
FROM your_table;

正则逻辑说明

  • Litmus ID::精准匹配目标内容的固定前缀
  • [^|]+:匹配任意非竖线的字符,直到遇到下一个竖线或字符串结尾,确保只提取当前分隔段内的内容,不会跨段取值

测试验证

用你提供的示例字符串测试:
输入:PR|20078|ABBV|Ven|1|PS|1|DFT|efficacy|1|0|W1|Key22 CLL EASTERN|Litmus ID: 865avvwr|2022-04-28
执行上述语句后,返回结果为:Litmus ID: 865avvwr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:25:46