Postgresql 8.4を使用して、文字列が長すぎる場合に切り捨てずに、空白で文字列を右パディングするにはどうすればよいですか?
問題は、文字列が実際にパディングする文字数よりも長い場合に文字列をrpad
切り捨てることです。例:
SELECT rpad('foo', 5); ==> 'foo ' -- fine
SELECT rpad('foo', 2); ==> 'fo' -- not good, I want 'foo' instead.
私が見つけた最短の解決策はまったく含まrpad
れていません:
SELECT 'foo' || repeat(' ', 5-length('foo')); ==> 'foo ' -- fine
SELECT 'foo' || repeat(' ', 2-length('foo')); ==> 'foo' -- fine, too
しかし、これは醜い私見に見えます。もちろん、実際には文字列'foo'を選択するのではなく、列から選択することに注意してください。
SELECT colname || repeat(' ', 30-length(colname)) FROM mytable WHERE ...
よりエレガントな解決策はありますか?