如何在通过 SQL 查询语句导出到 Excel/csv 时保持 leading/prefix 为零?

How to keep leading/prefix zeros when export to Excel/csv by SQL query statement?

我使用 Oracle,我想知道如何在通过以下 SQL 查询语句导出到 Excel/csv 时保持 leading/prefix 零?

假设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)

非常感谢您的任何建议。

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;

您必须以 csv 格式导出。从 Oracle 导出中,您将获得包括前导零在内的实际值。在文本编辑器中打开 .csv 文件并检查值。如果您使用任何 IDE(即 SQL 开发人员)

进行导出,则与 sql 无关

以上说的完全正确,会补充:-

  • 双击打开 csv 文件会在 excel 中打开它,不会显示尾随零。
  • 您可以在文本中打开以确认您将有零。
  • 现在要在 excel 中使用,只需打开一个新的 excel >> 转到“数据”选项卡 >> “获取数据”>> 从文件中选择 csv/txt .这样它将正确加载而无需删除尾随零,您还将有一些选项,例如更改编码。