复制PostgreSQL的结果

时间:2011-06-02 14:11:57

标签: postgresql clipboard pgadmin

我将查询(应用程序pgAdmin)的每个结果复制到Google Doc's Sheet中。 我很想知道是否可以将Postgress设置为插入Tab而不是分号(;)来分隔列中的值 - 我只想将其从postgres复制并粘贴到Google Doc的工作表中。

如果不可能,有没有办法在Google Doc的表格中写一个宏?

我想再问一个问题 - 如何通过使用select命令来划分我得到的两个值(以及如何从Postgres SQL要求存储值,例如double)?

9 个答案:

答案 0 :(得分:4)

使用export能力。

答案 1 :(得分:4)

现在可以将PgAdmin配置为使用Tab作为字段分隔符进行复制/粘贴,而不是;

从PgAdmin MAIN窗口:

  • 文件
  • 选项
  • 查询工具部分
    • 结果网格区域
      • 点击“结果复制字段分隔符”
      • 旁边的下拉菜单
      • 从选项列表中选择“标签”

Screenshot of PgAdmin Options screen

您可能必须重新启动PgAdmin才能使其生效。适用于直接粘贴到Google电子表格中!

关于你的除法问题,如果你只是将这两个数字分开,你可能并不总是得到你所期望的 - 整数不会自动划分并成为浮动结果 - 你必须抛出它们:

select 1::numeric/2::numeric

返回0.50

鉴于:

select 1/2

返回0(通常不是你想要的)

答案 2 :(得分:1)

也许这样的事情可能有用:)

select relname || chr(9) || reltype || chr(9) || relam from pg_class

答案 3 :(得分:1)

psql可以通过多种方式实现这一目标:

% psql -At -F, -c 'SELECT * FROM my_table'
1,login,http://stackjet.com/login
2,mod3,https://127.0.0.1:5000/mod3/
3,mod2,http://127.0.0.1:5000/mod2/
4,logout,https://127.0.0.1:5000/logout

转义是该方案的问题。 COPY是你的朋友。

答案 4 :(得分:1)

COPY\copy的输出保存为.tsv文件,并使用文件/导入加载该文件。或者,您也可以使用CSV格式。

答案 5 :(得分:1)

在PGAdmin 4中,您可以通过执行sql查询然后按F8来实现此目的,它将导出查询结果。

第1步: enter image description here

步骤2:现在选择查询结果,然后单击CSV格式的下载查询结果,如下所示:

enter image description here

第3步:验证查询结果

enter image description here

你已经完成了。

答案 6 :(得分:1)

由于JDBC within Apps Script尚未支持Postgres(由于某种原因),因此您无法直接在Google表格中编写此脚本。你绝对可以编写这个the Google Sheets API脚本和你选择的语言(例如Python和Pandas使这个任务相对简单)。

如果您不想推出自己的解决方案,请查看SeekWell。它允许您直接在Sheets中连接到数据库并编写SQL查询。您可以创建一个运行“运行表”,它将同时运行多个查询,并安排这些查询运行,而无需打开工作表。

免责声明:我做到了。

答案 7 :(得分:1)

  • 如果不可能,是否可以在Google文档的工作表中编写宏?

不幸的是,宏并没有这样做。如果要编写自己的脚本,则必须使用应用程序脚本,但是应用程序脚本JDBC不支持postgres,因此必须构建自己的查询服务器。

您还可以使用Castodia,Seekwell和Kpibees之类的插件。您可以找到它们here

  • 我想再问一个问题-如何使用选择命令...分割两个值?

如果要与工作表同步数据库数据,然后更改该数据,最好的选择是添加单独的列并使用公式(例如:= A1 / 2)。如果您使用的是插件,则可能需要先检查数据的更新方式,以免覆盖所有列。自从我工作以来,我只能为Castodia插件发言。更新工作表时,它只会更新包含数据的列。因此,如果您有“年龄,职业,收入”列,它将仅覆盖这3列,因此可以安全地用公式添加列。

  • ...(以及如何要求Postgres SQL将值存储为例如double)?

列的数据类型存储在Postgres数据库中,因此,如果将数据存储为文本,则它将以文本形式返回。但是,您可以将列设置为工作表中的特定类型。选择您的列,转到“格式”,然后选择“数字”。之后,当数据更新时,列将保持所需的格式,除非更新工作表的脚本也更改了列格式,所以请确保首先检查该格式。 Castodia脚本不会更改列格式,因此此解决方案应至少与一个插件一起使用。

答案 8 :(得分:-1)

我会使用vanilla SQL执行插入/插值,然后使用QueryClips之类的工具将您的数据导入Google工作表。