Java Mania

Java Mania

関数

SQLには色々な関数が用意されている。全部覚えていては大変なので、ここに記す。
HomePageTop▲

文字列関数一覧

文字関数
関数 説明
CONCAT(文字1,文字2) 文字1と文字2を連結する。NULLは空文字と同じ扱いをする。 CONCAT('AB','YZ')→'ABYZ'、CONCAT('AB',NULL)→'AB'
INITCAP(文字) 文字の最初を大文字、その他を小文字に変換する。 INITCAP('tom brian')→'Tom Brian'、INITCAP('NANCY')→'Nancy'
INSTR(文字1,文字2,検索開始位置,出現回数) 文字1の中の文字2の位置を返す。検索開始位置、出現回数は省略可能で、デフォルトは1。 INSTR('HELLO','L')→3、INSTR('HELLO','L',1,2)→4
LENGTH(文字) 文字の長さを戻す。 LENGTH('HELLO')→5
LOWER(文字) 文字を小文字に変換する。 LOWER('HELLO')→'hello'
LPAD(文字1,文字数,文字2) 文字1が指定された文字数になるように文字2を文字1の左側に埋める。 文字2が省略された場合、空白を埋める。 LPAD('PA',4)→' PA'、LPAD('PA',4,'A')→'AAPA'
RPAD(文字1,文字数,文字2) 文字1が指定された文字数になるように文字2を文字1の右側に埋める。 文字2が省略された場合、空白を埋める。 RPAD('PA',4)→'PA '、RPAD('PA',4,'A')→'PAAA'
REPLACE(文字1,文字2,文字3) 文字1から文字2を検索し、文字3に置換する。 文字3が省略された場合、文字2を削除する。 REPLACE('HELLO','L')→'HLLO'、REPLACE('HELLO','L','B')→'HEBBO'
SUBSTR(文字,文字位置,文字数) 文字の指定された文字位置から指定された文字数分取り出す。 文字数が省略された場合、最後まで取得する。 文字位置が負の数の場合、後ろからの文字位置を計算する。 SUBSTR('HELLO',2,3)→'ELL'、SUBSTR('HELLO',2)→'ELLO'、SUBSTR('HELLO',-2,3)→'LO'
TRIM(文字1 FROM 文字2) 文字2から前後に含まれる文字1を切り捨てる。文字1が省略された場合、スペースを削除する。 文字1の前にLEADINGがついたら先頭の、TRAILINGがついたら末尾の文字2を切り捨てる。 TRIM('Y' from 'YESTERDAY')→'ESTERDA'、TRIM(LEADING 'Y' from 'YESTERDAY')→'ESTERDAY'、 TRIM(TRAILING 'Y' from 'YESTERDAY')→'YESTERDA'、TRIM(' AA ')→'AA'
UPPER(文字) 文字を大文字に変換する。 UPPER('hello')→'HELLO'

HomePageTop▲

数値関数一覧

数値関数
関数 説明
MOD(数値1,数値2) 数値1を数値2で除算した余りを戻す。 MOD(2000,100)→0、MOD(20,9)→2
ROUND(数値,桁) 数値を四捨五入する。桁が省略された場合、小数点以下を四捨五入する。 桁は小数点第1位を0とする。
桁=1→小数点以下第2位,桁=-2→10の位
ROUND(834.125,-3)→1000、ROUND(834.125)→834
TRUNC(数値,桁) 数値を切捨てる。桁が省略された場合、小数点以下を切捨てる。 桁は小数点第1位を0とする。
桁=1→小数点以下第2位,桁=-2→10の位
TRUNC(834.125,-3)→0、TRUNC(834.125)→834

HomePageTop▲

日付関数一覧

日付関数
関数 説明
ADD_MONTHS(日付,月数) 日付に月数を加算する。日付が月末の場合、結果の日付も月末になる。 ADD_MONTHS('2000-08-31',-2)→'2000-06-30'
LAST_DAY(日付) 日付の月の月末を求める。 LAST_DAY('2000-08-2')→'2000-08-31'
MONTHS_BETWEEN(日付1,日付2) 日付1-日付2の月数を求める。日は小数点以下で表示する。 ただし、日付が両方とも月末の場合、日は考慮されない。 MONTHS_BETWEEN('2000-08-31','2000-06-30')→2、 MONTHS_BETWEEN('2001-12-31','2002-02-11')→-1.35483870967742
NEXT_DAY(日付,曜日) 日付の次の指定された曜日の日付を求める。曜日を数字でも指定できる。
※1=日曜日〜7=土曜日
NEXT_DAY('2006-03-01','水曜日')→'2006-03-08', NEXT_DAY('2006-03-01',1)→'2006-03-05'
ROUND(日付,単位) 日付を四捨五入する。単位がない場合、時間を四捨五入する。
※'YYYY'→月を四捨五入、'MM'→日を四捨五入
ROUND(TO_DATE('2005-07-01 12:00:00','YYYY-MM-DD HH24:MI:SS'), 'YYYY')→'2006-01-01', ROUND(TO_DATE('2005-07-01 11:00:00','YYYY-MM-DD HH24:MI:SS'))→'2005-07-01'
SYSDATE 現在の日付と時刻を求める。 SYSDATE→'2006-03-01 16:41:18'
TRUNC(日付,単位) 日付を切り捨てる。単位がない場合、時間を切り捨てる。
※'YYYY'→月を切り捨て、'MM'→日を切り捨て
TRUNC(TO_DATE('2005-07-01 12:00:00','YYYY-MM-DD HH24:MI:SS'), 'YYYY')→'2005-01-01', TRUNC(TO_DATE('2005-07-01 20:00:00','YYYY-MM-DD HH24:MI:SS'))→'2005-07-01'

追記:日付-日付はエラーにならないが、日付+日付はエラーになる。
HomePageTop▲

Copyright (C) 2006, JavaMania. All Rights Reserved.