2

我有一个 .csv 文件,其中有一个名为active的列,其中包含“是”和“否”的值。

我在 SSIS 包中使用了派生组件,但我很难让我的表达式正常工作。Sql server 中的字段的数据类型为bit。

Active == "YES" ? "0" : "1"

有什么想法我可能会出错吗?

4

2 回答 2

2

你快到了。这将起作用:

(DT_BOOL)(UPPER(Active) == "YES" ? 1 : 0)

因此,您只需使用 1 和 0 而不是“1”和“0”(因为您需要数字,而不是字符串),然后将整个内容转换为 DT_BOOL,它将很好地映射到 SQL Server 的bit类型。

我还添加了 UPPER,因为您似乎不确定您的值是“是”还是“是”,否则字符串比较将区分大小写。

(另外,请注意,我假设您希望 Yes 映射到 1,No 映射到 0,这将是通常的方式......)

于 2013-09-03T14:33:08.037 回答
0

我也不能让它像那样工作。但这有效..

REPLACE(REPLACE([Column 1],"yes","1"),"no","0")
于 2013-09-03T13:28:10.087 回答