将SQL查询结果导出为CSV

5
我将使用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中行分隔符的问题。 - andy
Andy,谢谢。问题出在我使用了“,”而不是“;”。 - Morten Laustsen
太棒了,我已将此作为答案添加 :) 如果您能接受它,那将是一个很大的帮助。 - andy
实际上,, 没有任何问题。Excel 的行为取决于区域设置,使用 ,; 取决于用户的区域设置。 - Panagiotis Kanavos
3个回答

2
问题在于您使用逗号,而不是分号;作为行分隔符。请尝试以下命令:SQLCMD -S . -d BAS -Q "SQL STATEMENT" -s ";" -o "c:\data.csv" :)

1

其实这更像是一个Excel问题,已经在superuser中有答案。当打开CSV文件时,分隔符的默认值与本地设置相关。在使用,作为小数分隔符的区域中,默认值是;

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

顺便说一下,在Excel和SharePoint公式中也使用相同的规则,根据您的位置设置,您可能需要键入;而不是,以分隔值。


0
您可能遇到以下问题之一:
要么CSV输出在其列之间不使用任何分隔符(您可以通过在常规文本编辑器中打开CSV文件来检查此内容); 要么Excel为CSV文件设置的列分隔符与您实际输出文件中的分隔符不匹配。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接