SQL関数とは、データベースの問い合わせ言語であるSQLから利用できる関数です。この記事では、OracleデータベースにおけるSQL関数の使い方を紹介しています。

グループ関数

単一行に基づく結果行を戻すのではなく、行のグループに基づく単一結果行を戻す。

名前 説明
AVG 平均値を返す。
COUNT 行数を返す。
MAX 最大値を返す。
MIN 最小値を返す。
SUM 合計値を返す。

日付関数

名前 説明
ADD_MONTHS nヵ月後またはnヵ月前の日付を戻す
LAST_DAY 月末の日付を戻す
SYSDATE 現在の日時を返す。

端数処理関数

数値や日付の端数を処理するには、次の関数を使う。

SQL関数説明
CEIL指定した数値以上の最小の整数を返す。
FLOOR指定した数値以下の最大の整数を返す。
ROUND数値や日付を丸めた値を返す。
TRUNC数値や日付を切り捨てた値を返す。

文字関数

名前 説明
ASCII(char) ASCII値が返る。
CHR(n) 指定した文字コードの文字が返される。
CONCAT(char1, char2) char1char2が連結された文字列が返る。
INITCAP(char) 各単語の先頭を大文字、残りの文字を小文字にした文字列が返る。
INSTR 文字列を検索して部分文字列が表れた位置を戻す。
INSTRB(string, substring [, position [, occurrence]]) 文字列を検索して部分文字列が表れた位置を戻す(バイト単位)。
LENGTH 文字列の文字数を返す。
LENGTHB 文字列のバイト数を返す。
LOWER 文字列を小文字に変換して戻す
LPAD 指定した桁数になるまで文字列の左側に文字列を埋め込む。
LTRIM(char [,set]) charからsetに指定した文字を取り除いて返す。
REPLACE 文字列を別の文字列で置き換える。
RPAD 指定した桁数になるまで文字列の左側に文字列を埋め込む。
RTRIM(char [,set]) charからsetに指定した文字を取り除いて返す。
SUBSTR 文字列から部分文字列を抜き出して戻す
SUBSTRB 文字列から部分文字列を抜き出して戻す
TRANSLATE 文字列を別の文字列で置き換える。置換後の文字列も再度置き換える。
TRIM([[<trim_spec>] char ] FROM ] string) 文字列から指定した文字を取り除いて返す。
UPPER 文字列を大文字に変換して戻す

変換関数

変換ファンクションは、あるデータ型から他のデータ型に値を変換する。

名前 説明
TO_CHAR 日時型を文字列型へ変換する
TO_DATE 文字列をDATE型へ変換する。
TO_NUMBER 文字列を数値に変換する。

分析関数

分析関数は、問い合わせで実行される演算の集合である。結合、WHERE句、GROUP BY句及びHAVING句を実行した後で分析関数が処理される。したがって、WHERE句、GROUP BY句及びHAVING句の中では分析関数は使えない。ORDER BY句の中では分析関数を使用できる。

名前 説明
DENSE_RANK 順位を付ける。
RANK 順位を付ける。
ROW_NUMBER 行番号を返す。

その他の関数

その他の関数を次に示す。

名前 説明
DECODE 評価式が条件値に一致する場合、任意の値を返す。
NVL NULLを別の値に変換する。
COALESCE 式のリストのうちNULLでない最初の値を戻す
MOD 剰余(割り算の余り)を返す。