使用列名从db2导出数据

使用列名从db2导出数据,db2,export-to-excel,Db2,Export To Excel,我想将数据从db2表导出为csv格式。我还需要第一行应该是所有列名 通过使用以下命令,我几乎没有成功 EXPORT TO "TEST.csv" OF DEL MODIFIED BY NOCHARDEL coldel: , SELECT col1,'COL1',x'0A',col2,'COL2',x'0A' FROM TEST_TABLE; 但有了这些,我得到的数据如下 Row1 Value:COL1: Row1 Value:COL2: Row2 Value:COL1: Row2 Valu

我想将数据从db2表导出为csv格式。我还需要第一行应该是所有列名

通过使用以下命令,我几乎没有成功

EXPORT TO "TEST.csv" 
OF DEL 
MODIFIED BY NOCHARDEL coldel: ,
SELECT col1,'COL1',x'0A',col2,'COL2',x'0A' 
FROM TEST_TABLE;
但有了这些,我得到的数据如下

Row1 Value:COL1:
Row1 Value:COL2:
Row2 Value:COL1:
Row2 Value:COL2:
等等

我还尝试了以下查询

EXPORT TO "TEST.csv" 
OF DEL 
MODIFIED BY NOCHARDEL 
SELECT 'COL1',col1,'COL2',col2 
FROM ADMIN_EXPORT;
但当用excel打开时,它会列出列名称和每行数据

有没有一种方法可以获得以下格式的数据

COL1   COL2
value  value
value  value
在excel中打开时


谢谢

请将列名作为表中的第一行插入


使用order by确保列名所在的行首先出现。

经过几天的搜索,我用这种方法解决了这个问题:

 EXPORT TO ...
 SELECT 1 as id, 'COL1', 'COL2', 'COL3' FROM sysibm.sysdummy1
 UNION ALL
 (SELECT 2 as id, COL1, COL2, COL3 FROM myTable)
 ORDER BY id
在db2中,不能从无到有地选择常量字符串,因此必须从sysibm.sysdummy1中进行选择。
要在第一行中手动添加列,您必须添加一个伪id,并根据该id对联合结果进行排序。否则,标题可能位于结果文件的底部。

非常老的问题,但我最近遇到了一个类似的问题,即在11.5版本中,使用
外部表
功能可以更轻松地实现这一点,请参见此处的答案:

例如:

$ db2 "create external table '/home/db2v115/staff.csv' 
using (delimiter ',' includeheader on) as select * from staff"
DB20000I  The SQL command completed successfully.
$ head /home/db2v115/staff.csv | column -t -s ',' 
ID  NAME      DEPT  JOB    YEARS  SALARY    COMM
10  Sanders   20    Mgr    7      98357.50  
20  Pernal    20    Sales  8      78171.25  612.45
30  Marenghi  38    Mgr    5      77506.75  
40  O'Brien   38    Sales  6      78006.00  846.55
50  Hanes     15    Mgr    10     80659.80  
60  Quigley   38    Sales         66808.30  650.25
70  Rothman   15    Sales  7      76502.83  1152.00
80  James     20    Clerk         43504.60  128.20
90  Koonitz   42    Sales  6      38001.75  1386.70

考虑到你在使用这个命令,我假设你在LUW上。显然有一个“导出到Excel”实用程序-你不能使用它吗?我想通过程序代码来实现,因为有很多表。这没有任何意义。例如,对于数据类型为INTEGER的列,如何将列名作为第一行插入?