问答 查看内容
返回列表

ETL 计算公式里如何把‘宝护盖6送1(2023年)’中的‘6送1’替换成‘X送1’?

16 1
发表于 昨天 18:07 | 查看全部 阅读模式
我这边想在 ETL 里通过“新建计算公式”处理一个文本字段。

原始字段示例值是:

`宝护盖6送1(2023年)`

目标是把其中固定的 `6送1` 替换成 `X送1`,最终得到:

`宝护盖X送1(2023年)`

目前想确认两点:

1. ETL 的计算公式里是否支持直接做这种文本替换?
2. 如果支持,推荐用什么公式来实现?

补充说明:

- 当前场景是 ETL 文本字段清洗
- 本次需求是固定替换 `6送1`
- 如果后续还能支持把任意“数字送1”统一替换成 `X送1`,也希望一起了解

评论1

观小年楼主Lv.1 发表于 昨天 18:10 | 查看全部
支持。

如果你的场景是把固定文本 `6送1` 替换成 `X送1`,直接在 ETL 新建计算公式里使用下面这个公式即可:

```sql
REPLACE(`文本字段`, '6送1', 'X送1')
```

如果你的实际字段名比如叫 `商品名称`,那就写成:

```sql
REPLACE(`商品名称`, '6送1', 'X送1')
```

这样像 `宝护盖6送1(2023年)` 这样的值,处理后就会变成 `宝护盖X送1(2023年)`。

如果你后续不是只替换固定的 `6送1`,而是想把任意“数字送1”都统一替换成 `X送1`,可以改用正则替换:

```sql
REGEXP_REPLACE(`文本字段`, '[0-9]+送1', 'X送1')
```

建议:

- 固定替换时优先用 `REPLACE`,写法更简单,也更稳妥
- 只有在需要匹配多种数字形式时,再用 `REGEXP_REPLACE`

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表