【问题标题】:export query results into CSV file issue in SQL Server将查询结果导出到 SQL Server 中的 CSV 文件问题
【发布时间】:2010-11-17 15:44:40
【问题描述】:

我使用的是 SQL Server 2008 Enterprise。我想将查询结果从 SQL Server Management Studio 导出到 csv 文件中。问题是,每个导出行中的每个结果列的默认 csv 文件都以逗号 (',') 分隔,我想将其设为 '\t' 分隔,因为逗号存在于某些结果列值中。

有什么快速的解决方案吗?

提前致谢, 乔治

【问题讨论】:

    标签: sql sql-server sql-server-2008 csv


    【解决方案1】:

    如果您真的想要 \t 分隔符,请编写这样的查询

    select 
      Cast(PersonCode as varchar(50)) + '\t'
      + Cast(PersonReference as varchar(50))    
    from People
    

    强制转换只是以防您不使用 varchar 类型,但如果您使用,则不需要它们。运行此查询并将结果转换为文本,然后将结果粘贴到记事本或类似工具中。

    【讨论】:

    • 你甚至不需要粘贴。使用结果到网格,只需右键单击并将结果另存为,使用所有文件作为文件类型,以允许您保存为 txt 文件或任何您想要的。
    • @Mark Dickinson:这不是我在回答中所说的吗?! :)
    • 不适合我,因为如果不使用大小写,我有二进制类型。这是错误消息。我的进一步问题是,如果我将二进制转换为 varchar,然后再转换回来,是否可以确保恢复二进制的原始值?消息 402,级别 16,状态 1,第 1 行数据类型 nvarchar 和 varbinary(max) 在 add 运算符中不兼容。
    • @Mitch:我的保存结果中没有该选项。我只得到导出文件 (csv) 或所有文件 (.)。也许我误解了问题中的 '\t',这是否意味着选项卡?无论如何,我的示例意味着您可以根据需要使用战争与和平作为分隔符,所以我仍然认为它很好:)
    • @Mitch,我 2005 年在办公室,这可能解释了差异。
    【解决方案2】:

    当您点击“另存为”并提示您输入文件名时,下拉文件名下方的框并选择“文本(制表符分隔)”

    【讨论】:

    • 谢谢,它在SQL Server 2008 中工作,我在SQL Server 2005 中试过没有这个功能?
    【解决方案3】:

    它仅将第一条记录保存为制表符分隔。 我不知道它将如何从查询分析器结果部分中选择所有行。

    【讨论】:

    • 当您以这种方式保存结果集时,它只保存选定的行。右键单击,全选。
    猜你喜欢
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多