代码之家  ›  专栏  ›  技术社区  ›  Starburst

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

  •  1
  • Starburst  · 技术社区  · 7 年前

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

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

    SELECT Fieldname AS Name FROM DB
    

    …没什么特别的。

    当我打开csv文件时,excel将长数字字段格式设置为指数语法格式:

    enter image description here

    有没有一种方法可以编辑查询或sqlcmd作业中的某些内容,让excel不要这样做?我正在考虑将结果定义为文本,而不是sql中的数字或类似的内容(但它已经是一个varchar字段,我还尝试了诸如'''+Fieldname和s.o…-.-)之类的方法)

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

    谢谢你的帮助/想法!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Community noseratio    7 年前

    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