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

如何在Redshift中实现CPF字段的000.000.000-00格式掩码

Redshift 的 TO_CHAR 数值格式化规则仅允许存在一个小数点分隔符,因此无法直接通过格式模板实现多符号的 CPF 掩码转换,可通过字符串处理函数实现需求,两种常用可行方案如下:

方案1:正则替换(写法简洁)

先将 cpf 字段转为11位补全前导零的字符串,再通过正则分组插入分隔符:

SELECT
  cpf,
  REGEXP_REPLACE(LPAD(cpf::VARCHAR, 11, '0'), '([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})', '$1.$2.$3-$4') AS mask_cpf
FROM CPF;

如果你的 cpf 字段本身就是长度为11位的字符串类型,且已经保留前导零,可以直接省略 LPAD 处理步骤,简化为:

SELECT
  cpf,
  REGEXP_REPLACE(cpf, '([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})', '$1.$2.$3-$4') AS mask_cpf
FROM CPF;

方案2:字符串截取拼接(兼容性更高)

通过分段截取字符串后拼接分隔符,逻辑更直观,适配各类边缘场景:

SELECT
  cpf,
  SUBSTRING(cpf_str, 1, 3) || '.' ||
  SUBSTRING(cpf_str, 4, 3) || '.' ||
  SUBSTRING(cpf_str, 7, 3) || '-' ||
  SUBSTRING(cpf_str, 10, 2) AS mask_cpf
FROM (
  SELECT 
    cpf,
    LPAD(cpf::VARCHAR, 11, '0') AS cpf_str
  FROM CPF
) t;

以上两种方案均可以实现你需要的 000.000.000-00 格式的 CPF 掩码效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:24:03