如何在 PostgreSQL 列中显示 leading/trailing 空格?

How to show leading/trailing whitespace in a PostgreSQL column?

我在下面的 SQL 语句中看不到 leading/trailing 空格 psql:

select name from my_table;

有没有实用的方法来查看 leading/trailing 空格?

如果您不介意替换所有空白字符,无论它们是否 leading/trailing,像下面这样的东西就可以做到:

SELECT REPLACE(REPLACE(REPLACE(REPLACE(txt, ' ', '_'),
                               E'\t', '\t'),
                       E'\r', '\r'),
               E'\n', '\n') AS txt
FROM test;

这是使用下划线来标​​记空格,当然你可以自由选择。参见 SQL fiddle demo

如果您严格只想显示 leading/trailing 个,它会变得更复杂 - 但如果确实需要,使用 regex_replace.

可能会有所帮助

其中一个选项是使用 format() 函数。

对于给定的查询案例:select format( '"%s"', name ) from my_table;

PoC:

SELECT  format( '"%s"', name )
FROM    ( VALUES ( ' a ' ), ( ' b ' ) ) v(name);

 format
--------
 " a "
 " b "
(2 rows)

在 psql 中关闭 "aligned mode":\a

\a
select * from my_table;

id|col1|col2
12|foo|bar

我会附加引号:

select '"' || name || '"' from my_table;

你可以试试这个:

select 来自 my_table 的名字 其中名称如“%”