如何在Pentaho PDI中根据d、e的条件值修改表T的a、b字段值?
在Pentaho PDI中根据条件修改字段值的实现步骤
1. 创建转换并读取源表数据
- 新建一个转换,添加**表输入(Table Input)**组件,配置对应数据库连接,编写SQL语句读取表T的全部字段:
SELECT a, b, c, d, e FROM T;
2. 根据条件修改a、b字段值
这里提供两种常用的实现方式,按需选择:
方式一:使用计算器(Calculator)组件
- 添加计算器组件,将表输入的输出连接到该组件。
- 配置字段a的修改规则:
- 新字段名:
a(勾选「替换现有字段」) - 计算类型:选择「条件」
- 条件表达式:
d = 3 AND e = 4 - 满足条件时的值:
2 - 不满足条件时的值:
a(保留原字段值)
- 新字段名:
- 重复上述步骤配置字段b:
- 新字段名:
b(勾选「替换现有字段」) - 计算类型:「条件」
- 条件表达式:
d = 3 AND e = 4 - 满足条件时的值:
3 - 不满足条件时的值:
b
- 新字段名:
方式二:使用用户定义的Java表达式(User Defined Java Expression)组件
- 添加用户定义的Java表达式组件,连接到表输入的输出。
- 配置字段a的表达式:
勾选「替换现有字段」,字段名设为(d == 3 && e == 4) ? 2 : aa。 - 配置字段b的表达式:
勾选「替换现有字段」,字段名设为(d == 3 && e == 4) ? 3 : bb。
3. 将修改后的数据写回原表
- 添加**插入/更新(Insert/Update)**组件,连接到字段修改组件的输出。
- 配置数据库连接和目标表
T。 - 设置「用来查询的字段」:选择表T的主键或唯一标识字段(确保能精准匹配要更新的记录)。
- 设置「要更新的字段」:添加
a和b字段,对应值选择流中的a和b字段。 - 运行转换,即可完成符合条件的记录的a、b字段值修改。
内容的提问来源于stack exchange,提问作者Ibrahim Houssem
相关产品推荐
相关产品推荐

