sql - 通过 SQL 查询语句导出到 Excel/csv 时如何保持前导/前缀零?
问题描述
我使用 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)
非常感谢您的任何建议。
解决方案
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;
推荐阅读
- java - MPAndroidChart setData 多行
- r - 在不使用强度的情况下将颜色条添加到mesh3d(使用facecolor)
- c++ - 如何从 cpp 中的 std::list 中删除每隔一个元素?
- android - 如何在 Android Studio 中使用 Chaquopy 显示 python matplotlib 图形 (png)
- function - 匿名函数中的访问变量(半 Shopify 相关)
- ios - iOS模拟器每次都想访问麦克风
- spring - 如何使用 Spring Data Redis 在 Redis 中将键和值存储为 JSON?
- python - 如何在 python 循环上垂直打印“*”?
- zend-framework - 在另一个 Zend Framework 3 应用程序中使用相同的库
- python - 内部服务器错误,而不是来自 Auth0 的引发 AuthError 响应