gpt4 book ai didi

postgresql - 在 PSQL 中为 SELECT CLAUSE 在单独的行上显示每个列值

转载 作者:行者123 更新时间:2023-11-29 14:32:40 25 4
gpt4 key购买 nike

在我的 shell 上使用 psql,我试图以特定方式显示 SELECT CLAUSE 的输出。我希望我的行的每个列值都显示在自己的行上。

现在,我的输出看起来像这样(我不想要的显示):

Expanded display is on.
idOne nameOne createdAtOne
idTwo nameTwo createdAtTwo

但我希望它看起来像这样

Expanded display is on.
idOne
nameOne
createdAtOne
idTwo
nameTwo
createdAtTwo

我的命令行如下

psql -h hostName -d databaseName -U userName -p 5432 -c '\x on' -c "
COPY (
SELECT
e.id,
e.name,
e.created_at
FROM entity_name e
) TO STDOUT
;
"

我希望我的表的一行中一列的每个值都显示在单独的行上。

但是虽然我在我的命令行中使用了-c '\x on',即使显示了这句话Expanded display is on,我的输出是仍然以第一种方式显示,而不是以扩展方式显示。

我该怎么做?我错过了什么?

我的远程服务器上的 psql 版本是 psql (PostgreSQL) 9.6.6,我使用的是 MAC。

(ps:如果可能的话,我什至希望我的输出看起来像这样

id idOne
name nameOne
created_at createdAtOne
id idTwo
name nameTwo
created_at createdAtTwo

最佳答案

https://www.postgresql.org/docs/current/static/app-psql.html#APP-PSQL-META-COMMANDS

This command sets options affecting the output of query result tables

换句话说,它只影响显示的表格,而 COPY to STDOUT 向您显示结果生成的 tsc 或 csv 的输出。因此 \x 不会影响它。

另外从您的查询 - 我认为 COPY 不需要 - 您只需从查询复制到标准输出 - 因此省略 copy 并运行

SELECT
e.id,
e.name,
e.created_at
FROM entity_name e

在扩展显示中会给出预期的结果。不过,您必须 grep -v 'RECORD'

关于postgresql - 在 PSQL 中为 SELECT CLAUSE 在单独的行上显示每个列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49275635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com