0

我正在尝试这样做,但我不确定这是否可能。

我正在尝试tblRecords1(nvarchar) of table1 to tblRecords(bigint)使用转换函数复制另一个表的数据。

但它给出了错误。是否可以这样做?

这确保了 tblRecords1 中的值都是数值。

更新

我这样做如下:

INSERT INTO tblRecords (current_job_title,Highest_Education_Stream) SELECT convert(bigint,current_job_title),convert(bigint,Highest_Education_Stream) FROM tblRecords1

那我在做什么错?

更新 我忘记了空值。他们正在制造问题。所以我按照以下方式完成了它:

INSERT INTO tblRecords (current_job_title,Highest_Education_Stream)

 SELECT current_job_title = case when current_job_title is null then 0 else convert(bigint,current_job_title) end,
               Highest_Education_Stream=case when Highest_Education_Streamis null then 0 else convert(bigint,current_job_title) end,
 FROM tblRecords1
4

2 回答 2

0

如下所示

INSERT INTO tblRecords (current_job_title,Highest_Education_Stream) SELECT cast(bigint as "datatype of current_job_title"), cast(bigint as "datatype of Highest_Education_Stream") FROM tblRecords1

将“current_job_title 的数据类型”和“Highest_Education_Stream 的数据类型”替换为实际数据类型并用于空值检查

ISNULL(变量,0)

于 2012-08-09T13:09:52.980 回答
0

您可以转换,前提是您要转换的类型可以合理地匹配它要转换的类型。所以你可以这样做:

declare @from varchar(20) = '1000000'
declare @to bigint

select @to = convert(bigint, @from)
select @to

请参阅MSDN 上的 CAST 和 CONVERT

于 2012-08-09T11:23:16.510 回答