単一行関数を使用した出力のカスタマイズ9

以下のSQL文で、どのような結果が返されますか。

SELECT RPAD('DatabaseExamLab',8,'+') FROM dual;

ADatabase
BeExamLab
CExamLab+
Dエラー
解説正答:A

RPAD(string, length [,padding]) は、文字列の文字数が length に満たない場合に、右側に padding を埋め込むファンクションです。

ただし重要な挙動として: 元の文字列が length より長い場合は、左側から length 文字分だけ切り取られます(パディングは行われない)。

今回の例では 'DatabaseExamLab' は15文字、length は8なので、左から8文字 Database を返します。

SELECT RPAD('DatabaseExamLab',8,'+') FROM dual;

結果:

Database

LPADでも結果は同じ:

SELECT LPAD('DatabaseExamLab',8,'+') FROM dual;
-- 結果: Database

length が元の文字列より長い場合は本来の動作になります。

SELECT RPAD('ABC', 6, '*') FROM dual;
-- 結果: ABC***

SELECT LPAD('ABC', 6, '*') FROM dual;
-- 結果: ***ABC