在 psql 中显示查询结果时,有没有办法设置列的最大宽度?

Is there a way to set the max width of a column when displaying query results in psql?

我遇到的问题是我有一个包含 10 列的 table。其中 1 列是 HTML,因此非常长。它太长了,以至于它绕了几行并搞砸了其他有用的输出。通常,我一直在选择除那一列之外的所有列。但是,我开始加入另一个 table 并且现在有大约 20 列。

有没有办法指定最大列宽或在一定数量的字符后截断一列?

我试过了\x。这有点帮助......但在大多数情况下,一切看起来仍然混乱。

您可以通过 \pset columns X

指定列宽
postgres=# select 'some longer text some longer text some longer text some longer text some longer text some longer text';
┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                               ?column?                                                │
╞═══════════════════════════════════════════════════════════════════════════════════════════════════════╡
│ some longer text some longer text some longer text some longer text some longer text some longer text │
└───────────────────────────────────────────────────────────────────────────────────────────────────────┘
(1 row)

postgres=# \pset format wrapped 
Output format is wrapped.
postgres=# \pset columns 20
Target width is 20.
postgres=# select 'some longer text some longer text some longer text some longer text some longer text some longer text';
┌──────────────────┐
│     ?column?     │
╞══════════════════╡
│ some longer text…│
│… some longer tex…│
│…t some longer te…│
│…xt some longer t…│
│…ext some longer …│
│…text some longer…│
│… text            │
└──────────────────┘
(1 row)

确定,所以您的寻呼机配置良好 - 设置全局变量:

export PAGER=less
export LESS='-iMSx4 -RSFX -e'