Top/Oracle/単一行関数

Oracle/単一行関数

単一行関数

  問合せの各行に対して単一の結果行を返す関数。給与を四捨五入など。
  これに対し、グループ関数は、問合せのグループ行に対して単一の結果を返す関数。全員の給与の合計など。
  関数はネストする事ができる。

数値関数

関数説明
CEIL(n)n以上の最も小さい整数を返す ex) CEIL(9.1) = 10
FLOOR(n)n以下の最も大きい整数を返す ex) FLOOR(9.9) = 9
MOD(m ,n)mをnで割った余りを返す ex) MOD(5,2) = 1
POWER(m ,n)mをn乗した値を返す ex) POWER(2,3) = 8
SQRT(n)nの平方根を返す ex) SQRT(25) = 5
ROUND(m ,n)mを小数点以下n桁に四捨五入した値を返す ex) ROUND(123.456 ,2) = 123.460
TRUNC(m ,n)mを小数点以下n桁に切捨てした値を返す ex) TRUNC(654.321 ,-2) = 600.000

文字関数

関数説明
LENGTH(char)charの文字数を返す。LENGTHBはバイト数を返す ex) LENGTH('おらくる') = 4
INSTR(char1 ,char2 ,n ,m)char1のn番目の文字からchar2の探索を開始し、 char2がm番目に見つかった位置を返す。n,m省略時は1となる。ex) INSTR('Oracle Master' ,'a' ,4 ,1) = 9
SUBSTR(char ,n ,m)charのn番目からm文字分の文字列を返す。mは省略すると最後の文字まで。 nが負の場合はcharの終わりからの位置から処理する。ex) SUBSTR('Oracle Master' ,-10 ,6) = 'cle Ma'
INITCAP(char)charの各単語の最初の文字を大文字、残りの文字を小文字にして返す。空白・英数字以外の文字で区切られたものを単語とする。 INITCAP('oracle-MASTER') = 'Oracle-Master'
UPPER(char)charを大文字にして返す ex) UPPER('Oracle-Master') = 'ORACLE-MASTER'
LOWER(char)charを小文字にして返す ex) LOWER('Oracle-Master') = 'oracle-master'
CONCAT(char1 ,char2)char1とchar2を1つに結合して返す
CONCAT('Oracle ' ,'Master')= 'Oracle Master'
LPAD(char1 ,n ,char2)n桁になるようにchar1の左にchar2を埋めて返す ex) LPAD('Oracle' ,10 ,'-') = '----Oracle'
RPAD(char1 ,n ,char2)n桁になるようにchar1の右にchar2を埋めて返す ex) RPAD('Oracle' ,10 ,'*') = 'Oracle****'
TRIM([LEADING|TRAILING|BOTH][char1 FROM] char2)ex) char2の[先頭・最後・両方]からchar1を切り捨てる TRIM(BOTH '--' FROM '--Oracle--') = 'Oracle'
REPLACE(char1 ,char2 [,char3])char1の中からchar2を探し、char3に置換する ex) REPLACE('おらくる Master' ,'おらくる' ,'Oracle') = 'Oracle Master'

日付の演算

(日付 + 数値)、(日付 - 数値)、(日付 - 日付)、(日付 + 数値/24)が可能。(日付 + 日付)は不可。

日付関数 関数 説明

ADD_MONTHS(d ,n)日付dにnヶ月足した値を返す。月末の1ヶ月後は月末となる。 ex1) ADD_MONTHS('03-10-10' ,-1) = '03-09-10' ex2) ADD_MONTHS('03-10-31' ,-1) = '03-09-30'
LAST_DAY(d)日付dの月の月末日を返す。 ex) LAST_DAY('03-10-10') = '03-10-31'
NEXT_DAY(d ,char)次のchar曜日をの日付を返す。 ex) NEXT_DAY('03-10-19' ,'日曜日') = '03-10-26'
MONTHS_BETWEEN(d1 ,d2)日付d1と日付d2の間の月数を返す。 ex) MONTHS_BETWEEN('03-01-10' ,'02-10-10') = -9
SYSDATE現在の日時を返す。ex) select SYSDATE from dual = 2003-10-10 15:10:38
TRUNC(d [,format])formatの単位に日付dを切り捨てて返す。デフォルトは日付。 ex) TRUNC(SYSDATE ,'MONTH') = 2003-10-01 00:00:00
ROUND(d [,format])formatの単位に日付dを四捨五入して返す。デフォルトは日付。

データ型変換

暗黙のデータ型変換には以下のものがある。
(VARCHAR2 or CHAR)から(NUMBER or DATE)。(NUMBER or DATE)から(VARCHAR2)。

型変換関数

関数説明
TO_NUMBER(char [,format] [,nlsparams])charをformat書式のNUMBER型にして返す。L:通貨文字、G:グループ区切文字、D:小数点文字 ex) TO_NUMBER('\123,456.789' ,'L999G999D999') = 123456.789
TO_CHAR(n [,format] [,nlsparams])n(数値or日付)をformat書式のCHAR型にして返す。 ex) TO_CHAR(123456780,'L999,999,999') = \123,456.780
TO_DATE(char [,format] [,nlsparams])charをformat書式の日付型にして返す。

その他の関数

関数説明
NVL(expr ,val)exprの値がNULLであればvalを返す。NULL以外ならexprを返す。
NULLIF(expr1 ,expr2)expr1とexpr2を比較して等しい場合はNULLを返す。 等しくない場合はexpr1を返す。
COALESCE(expr1 ,expr2,...exprn)exprの中の最初のNULLでないexprを返す。ex) COALESCE(a ,b ,c)aがNULLでなければaを返し、aがNULLでbがNULLでなければbを返し、aもbもNULLでcがNULLでなければcを返す。
CASE 式 WHEN 条件1 THEN 値1 [WHEN 条件2 THEN 値2]... [ELSE デフォルト値] END式の値が条件1と一致する時は値1を返す。どれとも一致しない時はデフォルト値を返す。ELSE省略時はNULLを返す。※式、条件、値は同じデータ型である事。
DECODE(expr ,val1 ,rtn1 ,valn ,rtnn...rtnz)exprの値がval1ならrtn1を返し、valnならrtnnを返す。 どれでもない場合はrtnzを返す。rtnz省略時はNULLを返す。
GREATEST(expr ,expr...)expr内の最大値を返す。
LEAST(expr ,expr...)expr内の最小値を返す。

数値書式

要素説明
9有効桁数を表す。0なら詰められる。
0先行ゼロを返す。0なら0表示される。
$$記号を返す。
L通貨記号を返す。NLS_CURRENCY
,(カンマ)指定した位置にカンマを返す。
.(ピリオド)指定した位置にピリオドを返す。
G指定した位置にグループ区切文字を返す。NLS_NUMERIC_CHARACTERS
D指定した位置にピリオドを返す。NLS_NUMERIC_CHARACTERS

日付書式 要素 説明

YYYY ,YYY ,YY ,Y西暦の下桁数分表示。
MONTH1月〜12月
MM01〜12
MONJAN〜DEC
DAY日曜日〜土曜日
DD01〜31
DY日〜土
D日=1...土=7
HH12時間表記
HH1212時間表記
HH2424時間表記
MI
SS
このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

ページ新規作成

新しいページはこちらから投稿できます。

TOP