トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
10-44 バイト数に応じた0埋め
SQLパズル
任意の文字列が、3バイト未満なら、
左に0埋めを行って、3バイトにして出力する。
SQL
select Val as 変換前,
case when Val is null then LPad('0',3,'0')
when Lengthb(Val) < 3 then LPad(Val,3,'0')
else Val end as 変換後
from (select '1' as Val from dual
union select '12' from dual
union select '123' from dual
union select '1234' from dual
union select '1234あ' from dual
union select '123あ' from dual
union select '12あ' from dual
union select '1あ' from dual
union select 'あ' from dual
union select null from dual);
解説
Lengthb関数でバイト数を求めて、3バイト未満だったら
LPad関数で0埋めしてます。