如何在PostgreSQL列中显示前导/尾随空格?

时间:2016-01-11 08:50:42

标签: sql postgresql whitespace psql

我在以下跟随 PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi.getPlaceById(mGoogleApiClient, "ChIJi-t8KwUWrjsRlp-L9ykb2_k"); placeResult.setResultCallback(new ResultCallback<PlaceBuffer>() { @Override public void onResult(PlaceBuffer places) { Log.i(TAG, "Testing"); if (places.getStatus().isSuccess() && places.getCount() > 0) { final Place myPlace = places.get(0); Log.i(TAG, "Place found: " + myPlace.getName()); } else { Log.e(TAG, "Place not found"); } places.release(); } }); 执行的SQL语句中看不到前导/尾随空格:

psql

是否有务实的方式来查看前导/尾随空格?

5 个答案:

答案 0 :(得分:5)

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

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

的PoC:

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

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

答案 1 :(得分:3)

如果您不介意替换所有空白字符,无论它们是否为前导/尾随,以下内容将会执行此操作:

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

这是使用下划线标记空格,但当然您可以自由选择。请参阅SQL fiddle demo

如果您严格只想显示前导/尾随它会变得更复杂 - 但如果真的需要这样做,可以使用regex_replace进行某些操作。

答案 2 :(得分:1)

在psql中关闭“对齐模式”:\a

\a
select * from my_table;

id|col1|col2
12|foo|bar

答案 3 :(得分:1)

我要在周围加上引号:

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

答案 4 :(得分:0)

您可以尝试以下方法:

从my_table中选择名称 名称如“%”