小编dmo*_*ius的帖子

使用rpad在Postgresql中填充字符串而不截断它

使用Postgresql 8.4,如何在没有截断字符串的情况下用空格对字符串进行右键填充?

问题是当字符串实际上长于要填充的字符数时rpad 截断字符串.例:

SELECT rpad('foo', 5);  ==> 'foo  ' -- fine
SELECT rpad('foo', 2);  ==> 'fo'    -- not good, I want 'foo' instead.
Run Code Online (Sandbox Code Playgroud)

我找到的最短解决方案根本不涉及rpad:

SELECT 'foo' || repeat(' ', 5-length('foo'));  ==> 'foo  ' -- fine
SELECT 'foo' || repeat(' ', 2-length('foo'));  ==> 'foo'   -- fine, too
Run Code Online (Sandbox Code Playgroud)

但这看起来丑陋恕我直言.请注意,我当然不会选择字符串'foo',而是从列中选择:

SELECT colname || repeat(' ', 30-length(colname)) FROM mytable WHERE ...
Run Code Online (Sandbox Code Playgroud)

有更优雅的解决方案吗?

sql string postgresql function string-formatting

7
推荐指数
2
解决办法
4879
查看次数

标签 统计

function ×1

postgresql ×1

sql ×1

string ×1

string-formatting ×1