SSIS派生列nvarchar到位

时间:2013-09-03 13:02:35

标签: sql sql-server ssis

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

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

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

我可能会出错的任何想法?

2 个答案:

答案 0 :(得分:2)

你快到了。这将有效:

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

所以,你只需使用1和0而不是“1”和“0”(因为你想要数字,而不是字符串),然后将整个事物转换为DT_BOOL,它将很好地映射到SQL Server的{{1输入。

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

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

答案 1 :(得分:0)

我也无法让它像那样工作。但这有效..

REPLACE(REPLACE([Column 1],"yes","1"),"no","0")