R就是right右邊,L就是left左邊,PAD就是墊板
SELECT RPAD('123', 5, 'x') TEST FROM DUAL;如這行有5個位置的墊板,不夠的已x替代,並放在右邊,所以答案為
123xx
SELECT RPAD('1二3', 5, 'x') TEST FROM DUAL;但如果有中文答案卻是
1二3x
它把中文設為兩格(根據編碼會有所不同),但如果要讓它當成一格呢?
SELECT '1二3' || RPAD('x', 5, 'x')TEST FROM DUAL;我的想法是把想顯示的字加上全部都是一樣的墊板,所以答案是
1二3xxxxx
字後面有5個x
SELECT SUBSTR('1二3' || RPAD('x', 5, 'x'), 1, 5) TEST FROM DUAL;最後再用SUBSTR取出即可,所以答案為
1二3xx
寫個StoreProcedure
CREATE OR REPLACE FUNCTION CHI_SPACE(STR IN VARCHAR2, LEN IN PLS_INTEGER, PAD IN VARCHAR2) RETURE VARCHAR2 AS BEGIN RETURN SUBSTR(STR || RPAD(PAD, LEN, PAD), 1, LEN);--依照最後一個SQL的公式 END CHI_SPACE;
這樣以後就不管有沒有中文都可以統一用
SELECT CHI_SPACE('1二3', 5, 'x') FROM DUAL;
沒有留言:
張貼留言