如何在 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 的名字
其中名称如“%”
我在下面的 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 的名字 其中名称如“%”