以下の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,'+')
---------------------------
dbadojoLPADでも結果は同じ
SELECT LPAD('dbadojo.tech',7,'+') FROM dual;
LPAD('dbadojo.tech',7,'+')
---------------------------
dbadojolengthが元の文字列より長い場合は本来の動作になります。
SELECT RPAD('dbadojo', 10, '*') FROM dual;
RPAD('dbadojo',10,'*')
-----------------------
dbadojo***
SELECT LPAD('dbadojo', 10, '*') FROM dual;
LPAD('dbadojo',10,'*')
-----------------------
***dbadojo