我们可以使用不同的数据类型将数据从一列复制到另一列吗?

时间:2012-08-09 11:10:09

标签: sql sql-server

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

我正在尝试使用转换函数复制另一个表的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

2 个答案:

答案 0 :(得分:0)

您可以进行转换,只要您转换的类型可以合理地匹配它转换的类型。所以你可以这样做:

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

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

请参阅CAST and CONVERT on MSDN

答案 1 :(得分:0)

如下所示

  

INSERT INTO tblRecords(current_job_title,Highest_Education_Stream)   SELECT cast(bigint为“current_job_title的数据类型”),cast(bigint   as“Highest_Education_Stream的数据类型”)FROM tblRecords1

用实际数据类型替换“current_job_title”的数据类型和“Highest_Education_Stream的数据类型” 并使用

进行空检查
  

ISNULL(可变,0)