提问人:kaintxu 提问时间:11/3/2023 最后编辑:Dale Kkaintxu 更新时间:11/3/2023 访问量:26
SSIS 基于其他列替换列值
SSIS replace column value based on another columns
问:
我有一个表格,除其他字段外,还有以下内容。
我有一个 ETL on SSIS 包,它从此表中读取这两个字段和许多其他字段。我怎样才能做到,在写到最终表格之前,对于Cod_Cliente的每一行1111111我将 Cliente 值替换为“Trial”?
我最初的想法是创建一个派生列工具来创建一个新列,其逻辑是只复制值,除非我有提到的代码,在这种情况下,我添加了“试用”文本,但我想知道是否有更有效的方法来更新值。
答:
0赞
billinkc
11/3/2023
#1
我只知道您共享的内容,我的方法是在从源表查询数据时修复数据
SELECT col1
, Cod_Cliente
, CASE WHEN Cod_Cliente = 1111111 THEN 'Trial' ELSE Cod END As Cod
FROM dbo.MyTable
这样一来,一切都在进入管道之前就已经设置好了。
如果您想使用派生列,我更喜欢新列而不是更新现有列,因为它使我更容易调试。无论哪种方式,表达式都将类似于(区分大小写的列名),假设Cod_Cliente的数据类型是整数。
([Cod_Cliente] == 1111111) ? "Trial" : [Cod]
评论
0赞
kaintxu
11/3/2023
谢谢,这正是我一直在寻找的,我过去也做过,但我太专注于做一个 SSIS 工具的改变。
评论