我有一个.csv文件,其中有一个名为 active 的列,其中包含“是”和“否”的值。
我在SSIS包中使用了派生组件,但我很难让我的表达工作。 Sql server中的字段的数据类型为bit。
Active == "YES" ? "0" : "1"
我可能会出错的任何想法?
答案 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")