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

PostgreSQL 8.0.2(Amazon Redshift)提取字符串数字:REGEXP_SUBSTR无效怎么办?

在Amazon Redshift中提取字符串里的连续纯数字部分

你之前用REGEXP_SUBSTR(identity,'[0-9]')只返回单个数字,是因为[0-9]仅匹配单个数字字符,要提取连续的纯数字序列,需要把正则改成[0-9]+(+表示匹配1次或多次连续的数字)。

针对你的场景,直接使用以下SQL即可得到预期结果:

SELECT REGEXP_SUBSTR(identity, '[0-9]+') AS extracted_numbers
FROM your_table;

关键说明:

  • 这个正则会匹配字符串中第一组连续的数字,完全覆盖你的示例场景:
    • 输入student:1234 → 输出1234
    • 输入id:driver_license-111-AZ → 输出111
  • 如果需要明确指定匹配规则(比如从第一个字符开始找、取第一个匹配项),可以显式传递参数:
    SELECT REGEXP_SUBSTR(identity, '[0-9]+', 1, 1) AS extracted_numbers
    FROM your_table;
    
  • 若要处理无数字的情况,可搭配COALESCE返回默认值:
    SELECT COALESCE(REGEXP_SUBSTR(identity, '[0-9]+'), '无匹配数字') AS extracted_numbers
    FROM your_table;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:50:19