使用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)
有更优雅的解决方案吗?