SQL 通过 SQLCMD 查看导出到 CSV - Excel 格式数字从 varchar 字段到指数语法

SQL View export to CSV by SQLCMD - Excel format numbers from varchar fields to exponent syntax

我使用 sql 作业将数据从 sql 视图 (SQL Server 2005) 导出到 csv 文件:

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

在 sql 视图中有一个字段(Type Varchar(20)),其数字通常超过 15 个字符。对于这个字段我只是使用了一个简单的语句:

SELECT Fieldname AS Name FROM DB

...没什么特别的。

当我打开 csv 文件时 excel 将具有长数字的字段格式化为具有指数语法的格式:

有没有办法在查询或 sqlcmd 作业中编辑某些内容以表明 excel 不这样做?我正在考虑将结果定义为文本而不是 sql 中的数字或类似的东西(但它已经是一个 varchar 字段,我也尝试过像 ''''+ Fieldname 和 s.o . ... -.-)

我无法更改 excel 中的某些内容,因为很多人应该可以访问 csv - 否则所有人都必须在 excel.[=15= 中进行设置]

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

感谢您的help/ideas!

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