我正在从头开始建立一个数据库。目前我有一个庞大的Excel工作表,由于存储的数据量太大,无法真正工作。我正在使用SQL Server数据库来存储数据。
现在,除了一列之外,我使用的所有列都可以工作。有一个ID,我需要在我的数据库的大部分中使用。不幸的是,一半的ID是字母数字,并且有数字(没有字母)。为了将数据从Excel存储到SQL Server,我将一半数据存储为float
,另一半存储为NVARCHAR
。一旦数据从Excel中取出,我就创建了第三列,并使用如下所示的代码组合数据:
UPDATE dbo.Table
SET ID = CONVERT(NVARCHAR(255), ISNULL(NumID, N'')) + N'' + CONVERT(NVARCHAR(255), ISNULL(LetID, N''))
运行代码后,我创建了一个新问题。数值数据现在写为"4.01867e+007“而不是"40186720”。
有人知道为什么或者如何解决这个问题吗?我希望数据读为"40186720“,而不是字母,以使其更容易使用。
发布于 2019-06-06 05:53:44
如果数字部分将介于±9万分之一之间(实际为9,223,372,036,854,775,807),则可以在转换为文本之前将浮点数转换为bigint:
UPDATE dbo.Table
SET ID = CONVERT(NVARCHAR(255), ISNULL(convert(bigint,NumID), N'')) + N'' + CONVERT(NVARCHAR(255), ISNULL(LetID, N''))
发布于 2019-06-06 05:18:33
你尝试过使用CAST
吗?CONVERT
有一个可选的样式参数,如果保留为空(取决于您的数据库),可能会被设置为默认值,从而导致问题...
https://stackoverflow.com/questions/56468086
复制相似问题