1

在 sql server 中,我试图从一个表中选择插入数据到另一个表中。代码如下:

Insert into TABLE2 (
Id, document_id
) select id, document_id from TABLE1

这两个表基本相同。文档 id 字段位于 nvarchar50 中,因为我们偶尔会得到带有字母的值。

我怎样才能让这些作为数值插入,而不是科学记数法?

谢谢!

4

2 回答 2

0

我假设其中的列table1有一些varchar变体,并以科学计数法保存数字。您可以尝试将它们转换为real(如有必要,可以转换为其他数字或varchar变体形式)。

INSERT INTO table2
            (id,
             document_id)
            SELECT convert(real, id),
                   convert(real, document_id)
                   FROM table1;
于 2018-08-15T19:49:19.017 回答
0

这似乎是一个 Excel 问题,其中 Excel 将文档 ID 视为数字而不是文本。Excel 的数字格式可能会破坏信息,因为相同的数字可以用不同的方式表示。例如,原始格式是500.2什么?是0500.200000000000500.20还是别的什么?此外,Excel 甚至可能舍弃小数,例如“5023423423423450”显示为“5.02342E+15”。无法在 SQL 中恢复此信息。

您必须通过以下任一方式在 Excel 中处理此问题

  • 输入带有前导撇号 ( ') 的文档 ID,以告诉 Excel 不要以某种方式解释它

或通过

  • 在输入文档 IDText 之前格式化文档字段。
于 2018-08-15T19:52:32.737 回答