我正在将查询(应用程序 pgAdmin)的每个结果复制到 Google 文档表中。
我想知道是否可以将 Postgres 设置为输出选项卡而不是分号;
来分隔列中的值 - 我想简单地从 Postgres 复制并粘贴到 Google Docs 表。
如果不可能,有没有办法在 Google Docs 表中编写宏?
我想再问一个问题 - 我如何划分使用 select 命令获得的两个值(以及如何要求 Postgres SQL 将值存储为例如 double)?
我正在将查询(应用程序 pgAdmin)的每个结果复制到 Google 文档表中。
我想知道是否可以将 Postgres 设置为输出选项卡而不是分号;
来分隔列中的值 - 我想简单地从 Postgres 复制并粘贴到 Google Docs 表。
如果不可能,有没有办法在 Google Docs 表中编写宏?
我想再问一个问题 - 我如何划分使用 select 命令获得的两个值(以及如何要求 Postgres SQL 将值存储为例如 double)?
由于Apps Script 中的 JDBC还不支持 Postgres(出于某种原因),因此您不能直接在 Google Sheets 中编写脚本。您绝对可以使用 Google Sheets API和您选择的语言编写此脚本(例如 Python 和 Pandas 使这成为一项相对简单的任务)。
如果您不想推出自己的解决方案,请查看SeekWell。它允许您直接在表格中连接到数据库并编写 SQL 查询。您可以创建一个运行“运行表”,它会一次运行多个查询,并安排这些查询在您甚至不打开工作表的情况下运行。
免责声明:我做了这个。
现在可以将 PgAdmin3 配置为使用 Tab 作为字段分隔符而不是 ;
在 PgAdmin3 主窗口中:
您可能必须重新启动 PgAdmin 才能使其生效。非常适合直接粘贴到 Google 电子表格中!
关于您的除法问题,如果您只是将两个数字相除,您可能并不总是得到您期望的结果 - 整数不会自动除法并成为浮点结果 - 您必须将它们转换:
select 1::numeric/2::numeric
这将返回 0.50
然而:
select 1/2
返回 0(通常不是你想要的)
使用出口能力。
将输出保存COPY
或保存\copy
为.tsv
文件并使用文件/导入加载该文件。或者,您可以以相同的方式使用 CSV 格式。
也许这样的东西可能有用:)
select relname || chr(9) || reltype || chr(9) || relam from pg_class
不幸的是,宏不这样做。如果要编写自己的脚本,则必须使用应用脚本,但应用脚本 JDBC 不支持 postgres,因此您必须构建自己的查询服务器。
您还可以使用 Castodia、Seekwell 和 Kpibees 等插件。你可以在这里找到它们
如果您想将数据库数据与工作表同步,然后更改该数据,最好的办法是添加一个单独的列并使用公式(例如:=A1/2)。如果您使用插件,您可能需要先检查数据是如何更新的,这样它就不会覆盖所有列。自从我工作以来,我只能为Castodia插件说话。当它更新您的工作表时,它只会更新包含数据的列。因此,如果您有“年龄、职业、收入”列,它只会覆盖这 3 列,因此您可以安全地使用公式添加第四列。
列的数据类型存储在 Postgres 数据库中,因此如果将数据存储为文本,它将以文本形式返回。但是,您可以将列设置为工作表中的特定类型。选择您的列,转到“格式”并选择“数字”。之后,当数据更新时,列将保持所需格式,除非更新工作表的脚本也更改列格式,因此请务必先检查。Castodia 脚本不会更改列格式,因此此解决方案应至少与一个插件一起使用。
我会使用 vanilla SQL 执行您的插入/插值,然后使用QueryClips 之类的工具将您的数据放入 Google 工作表中。