Oracle一行関数まとめ(文字列関数編)
はじめに
前回
bignight.hatenablog.com
に引き続きOracleの一行間数を取り上げようと思います。今回は文字列操作編です。
OracleDataBaseMaster Bronzeの教科書を下敷きとしてます。
ここら辺は知ってるかどうかで特典に大きく差がつくので確実に取っておきたいですね。
年末年始休日中に白本に移れるかしら。
文字列関数
LENGTH
LENGTH(文字列)…文字列の長さを返します。バイト数ではなく文字数を返します。バイト数を求めたければLENGTHB関数を使用します。
INSTR
INSTR(文字列1,文字列2,[m,n])…文字列1のn番目の文字から文字列2の探索を開始し、文字列2がm番目に表れる位置を返します。
たとえば
"this is a pen"
という文字列があったとしてaが出てくる位置を取得したければ
INSTR('this is a pen',a)
iが2番目に出てくる位置を取得したければ
INSTR('this is a pen',a,0,2)
SUBSTR
SUBSTR(文字列,n,[m])…文字列のn番目の文字からm文字の長さの文字列を抜き出して返す。
たとえば
"this is a pen"
という文字列があったとして最初の4文字いらないと思えば
SUBSTR('this is a pen',4)
最後の3文字がいらないと思えば
SUBSTR('this is a pen',0,3)
INITCAP
INITCAP(文字列)…各単語の最初の文字を大文字、残りの文字を小文字にして返します。
たとえば
"this is a pen"
を入力すれば結果は
"This Is A Pen"
になります。
UPPER
UPPER(文字列)…文字列を大文字にして返す。これは簡単ですね。
たとえば
"this is a pen"
を入力すれば結果は
"THIS IS A PEN"
になります。
LOWER
LOWER(文字列)…UPPERの反対です。文字列を小文字にして返します。
たとえば
"THIS is A pen"
を入力すれば結果は
"this is a pen"
になります。
CONCAT
CONCAT(文字列1,文字列2)…文字列1と文字列2を結合して1つの文字列を返します。
たとえば
"this is a pen."
"and this is yours."
という二つの文字列を入力したならば
"this is a pen.and this is yours."
という一つの文字列になります。
LPAD
LPAD(文字列,n[,パディング文字])…文字列1を、n桁になるように左にパディング文字を埋めて返します。パディング文字は省略することができ、デフォルト値は空白となります。
LPAD(給与,10,'_')
とすれば
____250000
____350000
などなど
RPAD
RPAD(文字列,n[,パディング文字])…文字列を、n桁になるように右にパディング文字を埋めて戻します。LPADでは左だったのが右になっただけですはい。
結果例
250000____
350000____
TRIM
TRIM([param][文字列1 FROM]文字列2)
paramとしては
LEADING | TRAILING | BOTH |
先頭 | 最後 | 両方 |
からそれぞれ文字列1を取り除きます。
たとえば
TRIM(BOTH '日' FROM 日曜日)
とやれば
曜
が返ってきます。
REPLACE
REPLACE(文字列1,文字列2[,文字列3])…文字列1の中から文字列2を探し、文字列3に置換します。文字列3を省略した場合は文字列1から全ての文字列2が取り除かれます。
雑考
意外と数が多い
参考:
オラクルマスター教科書 Bronze Oracle Database 10g【SQL基礎I】編 (CD-ROM付)
- 作者: 株式会社システム・テクノロジー・アイ林優子
- 出版社/メーカー: 翔泳社
- 発売日: 2004/12/20
- メディア: 単行本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (20件) を見る