単一行関数を使用した出力のカスタマイズ13 / 50 問

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

SELECT RPAD('dbadojo.tech',7,'+') FROM dual;
Adbadojo✓
Bjo.tech
Ctech+++
Dエラー
正解:A解説

RPAD(string, length [,padding])は、文字列の文字数がlengthに満たない場合に、右側にpaddingを埋め込むファンクションです。
ただし重要な挙動として、元の文字列がlengthより長い場合は、左側からlength文字分だけ切り取られます(パディングは行われません)。
今回の例では'dbadojo.tech'は12文字、lengthは7なので、左から7文字dbadojoを返します。

SELECT RPAD('dbadojo.tech',7,'+') FROM dual;

RPAD('dbadojo.tech',7,'+')
---------------------------
dbadojo

LPADでも結果は同じ

SELECT LPAD('dbadojo.tech',7,'+') FROM dual;

LPAD('dbadojo.tech',7,'+')
---------------------------
dbadojo

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

SELECT RPAD('dbadojo', 10, '*') FROM dual;

RPAD('dbadojo',10,'*')
-----------------------
dbadojo***

SELECT LPAD('dbadojo', 10, '*') FROM dual;

LPAD('dbadojo',10,'*')
-----------------------
***dbadojo

前後の問題