在sql server中,我试图选择将数据从一个表插入另一个表。该代码显示为:
Insert into TABLE2 (
Id, document_id
) select id, document_id from TABLE1
这两个表基本上是相同的。文档ID字段位于nvarchar50中,因为我们有时会获取其中带有字母的值。
如何获取这些作为数字值而不是科学计数法插入的值?
谢谢!
答案 0 :(得分:0)
我假设table1
中的列是varchar
的某些变体,并且以科学计数法表示数字。您可以尝试将它们转换为real
(并在必要时将其转换为其他数字或varchar
形式)。
INSERT INTO table2
(id,
document_id)
SELECT convert(real, id),
convert(real, document_id)
FROM table1;
答案 1 :(得分:0)
这似乎是一个Excel问题,其中Excel将文档ID视为数字而不是文本。 Excel的数字格式可能会破坏信息,因为相同的数字可以用不同的方式表示。例如。 500.2
的原始格式是什么?是0500.200
,000000000500.20
还是其他?此外,Excel甚至可能会舍弃小数,例如“ 5023423423423450”显示为“ 5.02342E + 15”。无法在SQL中还原此信息。
您必须通过以下任一方法在Excel中进行处理
'
)输入文档ID,以告知Excel不要以某种方式解释它或通过
Text
。