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

Snowflake SQL中如何提取字符串首组4位数字前的无下划线子串

Snowflake SQL 实现方案

核心逻辑是通过正则匹配定位第一组4位数字的位置,再做截取和字符替换即可实现需求,用到的Snowflake内置函数说明如下:

  • REGEXP_INSTR(字段, 正则规则):返回符合正则规则的内容首次出现的下标,此处规则\\d{4}匹配连续4位数字
  • SUBSTRING(字段, 起始位置, 长度):按指定范围截取字符串
  • REPLACE(字段, 要替换的字符, 替换为的字符):移除字符串中所有目标字符

基础实现(所有FIELD_1都包含4位数字的场景)

SELECT 
  FIELD_1,
  REPLACE(SUBSTRING(FIELD_1, 1, REGEXP_INSTR(FIELD_1, '\\d{4}') - 1), '_', '') AS FIELD_2
FROM TABLE_1;

兼容实现(存在FIELD_1不含4位数字的场景)

如果部分行的FIELD_1不存在连续4位数字,可以增加条件判断避免返回空值,默认返回全字段去除下划线的结果:

SELECT 
  FIELD_1,
  CASE
    WHEN REGEXP_INSTR(FIELD_1, '\\d{4}') > 0 THEN REPLACE(SUBSTRING(FIELD_1, 1, REGEXP_INSTR(FIELD_1, '\\d{4}') - 1), '_', '')
    ELSE REPLACE(FIELD_1, '_', '')
  END AS FIELD_2
FROM TABLE_1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:36:03