2010/01/21

[oracle]特定の数字を取り除く

今、google docsに保管しているoracleに関するノウハウをブログに書いていこうかなと思っています。

今日は、ある特定の数字を取り除く処理を。

今回は、0を取り除くSQLを題材にしてみます。

--1500を返す
select to_char(to_number('01500'))
from dual
;

--2300を返す
select ltrim('02300','0')
from dual
;

--1234を返す
select trim('0' from '12340')
from dual
;

一つ目のSQLは、文字列をいったんNUMBER型にして、再度、char型にすることで、一番左側にある余分な0だけを削除しています。

同様に2番目も一番左側にある0だけを削除していますが、一番目の違いは、NUMBER型に変換せず、char型のまま処理をしているところ。

そして最後も、確かに0を削除していることは削除しているのですが、右側にある0まで削除を行っていて、本来12340と表現したいところが1234となってしまい若干残念な感じ。

一番簡潔な2がいいのかなと。

0 コメント:

コメントを投稿