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 中)
我使用 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 中)