【问题标题】:Export SQL query result to CSV将 SQL 查询结果导出为 CSV
【发布时间】:2013-11-08 11:35:47
【问题描述】:

我正在使用 sqlcmd 将包含两列的查询结果导出到 csv。简单的查询是:

SELECT DISTINCT
    CustomerGuid, CustomerPassword
FROM
    ServiceOrder
ORDER BY
    CustomerGuid

当我在 Excel 中打开导出的 csv 时,客户和密码都在同一列上。是否可以使用 sqlcmd 将它们拆分为自己的列。我的 sqlcmd 看起来像

SQLCMD -S . -d BAS -Q "SQL STATEMENT" -s "," -o "c:\data.csv"

谢谢。

【问题讨论】:

  • 试试SQLCMD -S . -d BAS -Q "SQL STATEMENT" -s ";" -o "c:\data.csv" 可能是Excel中的行分隔符有问题。
  • 安迪,谢谢。问题是我使用“,”而不是“;”。
  • 太棒了,我已经添加了这个作为答案:) 如果你能接受它,那将是一个很大的帮助。
  • 其实,并没有错。 Excel 的行为取决于区域设置,根据用户的区域设置使用 ,;

标签: sql sql-server excel sqlcmd


【解决方案1】:

问题是您使用, 而不是; 作为行分隔符。试试:

SQLCMD -S . -d BAS -Q "SQL STATEMENT" -s ";" -o "c:\data.csv"

:)

【讨论】:

    【解决方案2】:

    实际上,这更像是一个 Excel 问题,superuser 已经回答了。打开 CSV 文件时的默认分隔符取决于区域设置。在, 是小数分隔符的语言环境中,默认值为;

    您可以修改区域设置中的列表分隔符(不推荐)或打开一个空工作表并导入数据,指定您想要的分隔符。

    顺便说一句,在 Excel 和 SharePoint 公式中使用相同的规则,您可能需要输入 ; 而不是 , 来分隔值,具体取决于您的区域设置。

    【讨论】:

      【解决方案3】:

      您可能遇到以下问题之一:

      CSV 输出在其列之间不使用任何分隔符(您可以通过在常规文本编辑器中打开 CSV 文件来检查这一点; 或者在 Excel 中为 CSV 文件设置的列分隔符与您在输出文件中实际使用的分隔符不匹配。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        相关资源
        最近更新 更多