我有一个 .csv 文件,其中有一个名为active的列,其中包含“是”和“否”的值。
我在 SSIS 包中使用了派生组件,但我很难让我的表达式正常工作。Sql server 中的字段的数据类型为bit。
Active == "YES" ? "0" : "1"
有什么想法我可能会出错吗?
我有一个 .csv 文件,其中有一个名为active的列,其中包含“是”和“否”的值。
我在 SSIS 包中使用了派生组件,但我很难让我的表达式正常工作。Sql server 中的字段的数据类型为bit。
Active == "YES" ? "0" : "1"
有什么想法我可能会出错吗?
你快到了。这将起作用:
(DT_BOOL)(UPPER(Active) == "YES" ? 1 : 0)
因此,您只需使用 1 和 0 而不是“1”和“0”(因为您需要数字,而不是字符串),然后将整个内容转换为 DT_BOOL,它将很好地映射到 SQL Server 的bit
类型。
我还添加了 UPPER,因为您似乎不确定您的值是“是”还是“是”,否则字符串比较将区分大小写。
(另外,请注意,我假设您希望 Yes 映射到 1,No 映射到 0,这将是通常的方式......)
我也不能让它像那样工作。但这有效..
REPLACE(REPLACE([Column 1],"yes","1"),"no","0")