使用列名从db2导出数据
我想将数据从db2表导出为csv格式。我还需要第一行应该是所有列名 通过使用以下命令,我几乎没有成功使用列名从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
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的列,如何将列名作为第一行插入?