我使用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)
非常感谢您的任何建议。
答案 0 :(得分:0)
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;
答案 1 :(得分:0)
您必须已完成csv格式的导出。从Oracle导出,您将获得包括前导零的实际值。在文本编辑器中打开.csv文件,然后检查值。如果您通过使用任何IDE(即SQL开发人员)进行导出,则与sql无关。
答案 2 :(得分:0)
上面说的完全正确,将添加:-