SQL视图导出为CSV通过SQLCMD - Excel格式的数字从varchar领域到指数的语法

问题描述:

我从一个SQL视图(SQL Server 2005中)与SQL作业到CSV文件导出数据:SQL视图导出为CSV通过SQLCMD - Excel格式的数字从varchar领域到指数的语法

sqlcmd -W -s ";" -E -d master -Q "SET NOCOUNT ON; SELECT * FROM [DB].[NameOfView];" -o "\\Location\File.csv" 

在sql视图是一个字段(类型为Varchar(20)),其中的数字通常长于15个字符。对于这个领域我只是一个简单的声明:

SELECT Fieldname AS Name FROM DB 

......没什么特别的。

当我打开CSV文件Excel文件格式与长数场与指数的语法格式为:

enter image description here

是否存在编辑查询或SQLCMD工作话要说方式excel不这样做?我正在考虑将结果定义为文本而不是sql中的数字或类似的东西(但它已经是一个varchar字段,并且我还尝试了''''+ Fieldname等等... -.-)

我无法改变excel中的内容,因为很多人都应该访问csv - 否则他们都必须在excel中进行设置。

他们应该打开CSV,一切都看起来很好!(:

感谢您的帮助/想法

确实

SELECT '"' + Fieldname + '"' AS Name FROM DB 

只工作,不应该导致双引号出现在? .csv和Excel将其视为文本。

编辑:尝试

SELECT '"=""' + Fieldname + '"""' AS Name FROM DB 

(上面的答案假设双引号不需要在SQL字符串中进一步转义,因为它使用单引号作为文本文字,所以如果没有喜悦就检查它。你的目标是为它看起来像

“=”“0.00000014567897354354”“”

在CSV

又见https://superuser.com/questions/318420/formatting-a-comma-delimited-csv-to-force-excel-to-interpret-value-as-a-string

+0

它,但后来我也看到在Excel报价例如:'1138024010424772' – Starburst

+0

尝试SELECT''=“”'+ Fieldname +'“”“'AS Name FROM DB – BenTaylor

+0

完美,谢谢:-)在excel中,字段显示整数,但没有指数语法 – Starburst