将Excel指数格式转换回SQL Server 2008 R2中的文本

问题描述 投票:0回答:1

首先,我有一个约束,我的解决方案必须从SQL SERVER 2008 R2开始工作

我要解决的问题是Excel将文本值'002E9'转换为2.00E + 09。该任务是将原始值'002E9'作为文本传递到CSV文件中。

开发人员已将SSIS解决方案传递给SSIS解决方案,该开发人员具有将其转换为SQL函数的功能。他们用过

SELECT FORMAT(CAST(2.00E+09 AS FLOAT),'0E0');

在2012年及以上版本中可以,但是在SQL 2008 R2中不起作用。

有没有简单的选择?如果这是最好的建议,我很乐意放弃SQL来使用SSIS脚本。

非常感谢。

sql-server sql-server-2008-r2
1个回答
0
投票

您可以尝试这个。

SELECT convert(numeric(38,0),cast(2.00E+09 AS float))

它将给出输出2000000000


0
投票

FORMAT在SQL Server 2008中不存在;但是最好避免使用它;这是一个非常慢的功能。

虽然您可以使用CONVERT和样式0

SELECT REPLACE(CONVERT(varchar(10),CAST(2.00E+09 AS float),0),'+','');

但是,这不会给出完全相同的格式,并且将返回'2e009'。基于您为'0E0'函数使用值FORMAT的事实(它将返回'2E9',我认为这是允许的。

© www.soinside.com 2019 - 2024. All rights reserved.