【发布时间】:2021-12-09 22:21:43
【问题描述】:
ISNULL([1 (Q1_1) ])? "": [1 (Q1_1) ]
当我将列拖到左上角的“列”框下时,我的列就是这样显示的,
[1 (Q1_1) ].
为什么我的表达不起作用?我想用空字符串替换 NULL 值。
【问题讨论】:
-
您是替换现有的
[1 (Q1_1) ]还是定义了一个新列?
标签: ssis null etl derived-column
ISNULL([1 (Q1_1) ])? "": [1 (Q1_1) ]
当我将列拖到左上角的“列”框下时,我的列就是这样显示的,
[1 (Q1_1) ].
为什么我的表达不起作用?我想用空字符串替换 NULL 值。
【问题讨论】:
[1 (Q1_1) ] 还是定义了一个新列?
标签: ssis null etl derived-column
默认情况下,如果您只是将上述表达式添加到派生列表达式中,SSIS 会给列命名为 Derived Column 1 出于调试目的,我更喜欢这个,尽管我倾向于将列重命名,所以我知道这一点值是从数据流任务中计算出来的。
我有一个 OLE DB 源 -> 派生列 -> 派生列。第二个派生列只是数据查看器的锚点
我使用查询作为我的来源来测试您的表达。实际来源在这里并不重要,但我发现直接查询是人们在他们的环境中重现的最容易的方法。
SELECT
D.col as [1 (Q1_1) ]
FROM
(
VALUES ('ABC')
,(NULL)
,('Pickles')
,('More pickles')
,('NULL')
)D(col);
我有 5 个值、4 个字符串和一个 NULL 实例。最后的 null 只是字母 N-U-L-L 的单词表示,而不是 NULL 值。我已经进行了调试会话,其中文字文本在起作用,而不是空占位符。
这里没有设置,但这允许我在两个组件之间放置一个数据查看器,当我运行时,这就是我所看到的
正如预期的那样,第二行的第二列中的结果值为空。其他 4 行的第二列是第一列中的值的重复。
现在我知道它按预期工作,如果我将 <add as new column> 切换到 Replace '1 (Q1_1) ' 并重新运行,我应该会看到相同的预期值,这次是在“原始”列中
【讨论】: