sql - 如何在 PostgreSQL 中执行 COPY TO 而不重新排序 CSV 文件
问题描述
我有一个包含两列的 CSV 文件,一列已填充(邮政编码),一列为空(速率)。我有一个 postgreSQL 表,其中包含一个重复的 zipcode 列和一个 rate 列,其中一半填充了值,一半为空。
(file.csv)
zipcode,rate
11111,
22222,
55555,
33333,
44444,
(table)
id| zipcode| rate
----------------
1 | 11111 | 33.53
2 | 22222 | null
3 | 55555 | 31.20
4 | 33333 | 44.35
5 | 44444 | null
我的问题是,当我尝试将填充的费率单元格合并到 CSV 文件中时,
=# COPY (SELECT zipcode, rate FROM table) TO '/Users/User/path/file.csv' DELIMITER ',' CSV HEADER;
postgres 重新排序 CSV 文件的单元格,并将包含空值的行放在带有 rate 值的单元格上方,如下所示 -
(file.csv)
zipcode,rate
22222,
44444,
11111,33.53
55555,31.20
33333,44.35
在我的情况下,rate 的空白单元格是可取的,我只需要一种方法来保留原始 .csv 文件的行顺序。
=# COPY table (zipcode, rate) TO '/Users/User/path/file.csv' DELIMITER ',' CSV HEADER;
得到相同的结果。想知道那里的 ORDER BY id 是否可行,但还没有成功。使用 psql 10.3。
解决方案
推荐阅读
- netsuite - 如何在 NetSuite 中从 SOAP 请求中设置一个空的自定义国家/地区字段
- c# - 检查给定索引后集合中的所有内容是否为空的最简单方法是什么?
- python - 将 Pandas 系列转换为数据框
- c++ - 在 C++ 中将十进制转换为十六进制
- postgresql - Postgres:在 JSON 数组上循环获取 where 子句
- r - 如何在 R 中使用 dplyr 计算不同的组
- javascript - 赛普拉斯 - 如何正确等待导入的 JS 函数的结果
- java - 使用 new 运算符创建了多少个字符串
- regex - 正则表达式:匹配特殊字符(|、-、/...)之前的第一次出现
- kubernetes - Azure-AKS 入口与负载均衡器错误上游过早关闭 websocket 连接上的连接