如何使用Postgresql 8.4,如何正確填充空白的字符串而不是當它太長時截斷它?使用rpad在Postgresql中填充字符串而不截斷
問題是,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
但是這看起來醜陋恕我直言。請注意,我不實際選擇過程中的字符串「富」,而不是我從一列選擇:
SELECT colname || repeat(' ', 30-length(colname)) FROM mytable WHERE ...
是否有一個更優雅的解決方案?
看起來不錯。謝謝! – dmoebius
不幸的是,它不適用於lpad,在這種情況下,你將不得不使用不太優雅的解決方案;) – TimoSolo
@Timothy:你能解釋爲什麼它不適用於lpad嗎? – Michael