【问题标题】:Create a .csv file that have two header创建一个具有两个标题的 .csv 文件
【发布时间】:2019-07-21 16:33:17
【问题描述】:

我必须创建一个包含两个标题的 .csv 文件

例子

Filename|FileDate|Location|Numberofrows
Testfile|20190101|USA     |1

Firstname|LastName|DOB     |Address1      |Address2
John     |Doe     |20800101|123 4th street|apt 2

我只知道如何创建一个只有一个标题的 CSV 文件。 谁能告诉我如何从 SQL 创建该格式的单个 .csv 文件。

我正在使用下面的方法来创建一个单独的头csv文件

DECLARE @command VARCHAR(4000)    
DECLARE @FileDirectory VARCHAR(1000) = 'c:\test\'    
DECLARE @HeaderFile varchar(255) = 'Headers.txt'    
DECLARE @FileName VARCHAR(255)

SET @FileName = 'TestFile_' + CONVERT(VARCHAR,GETDATE(),112)

SET @command = 'bcp "select * from TESTDB.dbo.TEST_Table"'    
       + ' queryout "' + @FileDirectory + @FileName + '.txt"'    
       + ' -c -q -t, -T  -S'+@@servername

EXEC master..xp_cmdshell @command

SET @command =  'copy "' + @FileDirectory + @HeaderFile + '"+"' + @FileDirectory + @FileName + '.txt"' +  ' "' + @FileDirectory + @filename + '.csv"'

EXEC master..xp_cmdshell @command

SET @command = 'del "' + @FileDirectory + @FileName + '.txt"'

EXEC master..xp_cmdshell @command

【问题讨论】:

  • 我刚刚添加了我如何创建单个标头 csv 文件
  • 我的回答有帮助吗?

标签: sql sql-server csv export-to-csv


【解决方案1】:

您已经添加了一个标题。只需使用相同的方法添加另一个即可。

dos COPY 命令使用+ 运算符连接文件。

所以不要这样:

SET @command =  'copy "' + 
    @FileDirectory + @HeaderFile + '"+"' + 
    @FileDirectory + @FileName + '.txt"' +  
    ' "' + @FileDirectory + @filename + '.csv"'

使用这个:

SET @command =  'copy "' + 
    @FileDirectory + @HeaderFile + '"+"' + 
    @FileDirectory + @HeaderFile + '"+"' + 
    @FileDirectory + @FileName + '.txt"' +  
    ' "' + @FileDirectory + @filename + '.csv"'

(为了清楚起见,这是在多行上)

如果遇到问题,您可能需要打印@command 的内容以进行调试。

应该是这样的:

COPY C:\Folder\Header.TXT + C:\Folder\Header.TXT + C:\Folder2\Data.TXT C\OutputFile\FInalFile.CSV

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    相关资源
    最近更新 更多