gpt4 book ai didi

tsql - 将 bit 转换为 int 返回负值

转载 作者:行者123 更新时间:2023-12-05 00:41:13 26 4
gpt4 key购买 nike

我正在尝试将源数据库中的位字段转换为 SSIS 项目 (SQL Server 2012) 中数据仓库中的整数值

Select cast([MyField] as int) as TheField from MyTable

出于某种原因,这将返回 0 和 -1,而不是我期望的 +1。
甚至
Select abs(cast([MyField] as int)) as TheField from MyTable

将在目标表中产生 -1。
SELECT 语句在预览和 SSMS 中按预期工作,我看到所需的 0 和 1。但是,SSIS 包中的实际数据传输任务未按预期工作。我尝试了数据转换任务和没有任务的直接写入表。

我真的不想使用额外的更新语句将我的 int 值乘以 -1。

由于这可能有点令人困惑,这里是源表:
CREATE TABLE [dbo].[empl](
[Name] [nvarchar](100) NULL,
[active] [bit] NULL
) ON [PRIMARY]

GO

这是表的屏幕截图:

enter image description here

以及数据传输任务的截图:

enter image description here

具有数据传输和转换结果的目标表:

enter image description here

最佳答案

非常有趣,如果你放一个数据查看器,你会看到下游,MyField 是 TRUE 或 FALSE,所以你可以做的是添加一个“派生列”组件来创建一个带有表达式的新列:
MyField == TRUE ? 1 : 0
然后将此新列映射到目标

关于tsql - 将 bit 转换为 int 返回负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com