首先,我有一个约束,我的解决方案必须从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脚本。
非常感谢。
您可以尝试这个。
SELECT convert(numeric(38,0),cast(2.00E+09 AS float))
它将给出输出2000000000
。
FORMAT
在SQL Server 2008中不存在;但是最好避免使用它;这是一个非常慢的功能。
虽然您可以使用CONVERT
和样式0
:
SELECT REPLACE(CONVERT(varchar(10),CAST(2.00E+09 AS float),0),'+','');
但是,这不会给出完全相同的格式,并且将返回'2e009'
。基于您为'0E0'
函数使用值FORMAT
的事实(它将返回'2E9'
,我认为这是允许的。