关于postgresql:在PSQL中的SELECT CLAUSE的单独行上显示每个列值

Display each column value on separate line for SELECT CLAUSE in PSQL

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

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

1
2
3
Expanded display IS ON.
idOne   nameOne   createdAtOne
idTwo   nameTwo   createdAtTwo

但我希望它看起来像这样

1
2
3
4
5
6
7
Expanded display IS ON.
idOne
nameOne
createdAtOne
idTwo
nameTwo
createdAtTwo

我的命令行如下

1
2
3
4
5
6
7
8
9
10
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’,并且即使显示了扩展显示的句子,但我的输出仍然是第一种方式而不是以扩展方式显示。

我怎样才能做到这一点? 我错过了什么?

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

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

1
2
3
4
5
6
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 - 你只需要从查询复制到stdout - 因此省略COPY并且只是运行

1
2
3
4
5
SELECT
  e.id,
  e.name,
  e.created_at
FROM entity_name e

在扩展显示中将给出预期结果。 你必须grep -v 'RECORD'