我使用Oracle,我想知道在通过下面的SQL查询语句导出到Excel/csv时,如何保持前导/前缀为零?
假定B.h
(字符串类型)的值可能为00068573和098235
SELECT A.e,
A.f,
A.g,
B.h
FROM A
JOIN C ON C.e=A.e
JOIN B ON C.j=B.j;
我用Python导出数据,部分代码如下所示:
for row_data in cursor:
output.writerow(row_data)
非常感谢你的建议。
发布于 2019-06-26 09:49:35
set heading off
set termout OFF
SET FEEDBACK OFF
SET TAB OFF
set pause off
set verify off
SET UNDERLINE OFF
set trimspool on
set timing off
set echo off
set linesize 1000
set pagesize 0
COLUMN CODE2 FORMAT 09999999
SET COLSEP ';'
spool test.csv
SELECT A.e,
A.f,
A.g,
B.h as code2
FROM A
JOIN C ON C.e=A.e
JOIN B ON C.j=B.j;
spool off
exit;
或者使用to_char(B.h, '09999999')
set heading off
set termout OFF
SET FEEDBACK OFF
SET TAB OFF
set pause off
set verify off
SET UNDERLINE OFF
set trimspool on
set timing off
set echo off
set linesize 1000
set pagesize 0
SET COLSEP ';'
spool test.csv
SELECT A.e,
A.f,
A.g,
to_char(B.h, '09999999')
FROM A
JOIN C ON C.e=A.e
JOIN B ON C.j=B.j;
spool off
exit;
如果字段是字符,则需要使用lpad函数。
SELECT A.e,
A.f,
A.g,
LPAD(B.h, 9, '0')
FROM A
JOIN C ON C.e=A.e
JOIN B ON C.j=B.j;
发布于 2019-06-26 11:41:33
您必须已经完成了csv格式的导出。从Oracle导出中,您将获得实际值,包括前导为零。在文本编辑器中打开.csv文件并检查值。如果要通过使用任何IDE (即)导出,则与sql无关。
发布于 2020-07-14 13:11:53
以上所说完全正确,将补充:-
https://stackoverflow.com/questions/56769570
复制相似问题