Oracle SQL関数

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

DECODE

DECODE(expr, condition1, value1, condition2, value2...)
DECODE(expr, condition1, value1, condition2, value2..., default)
expr
評価する式。列名や関数など。
condition
条件値
value
条件値に一致した場合にDECODE関数の戻り値となる値
default
いずれの条件値にも一致しなかった場合にDECODE関数の戻り値となる値。default を省略した場合はnull。

INSTR

文字列から部分文字列を検索し、現れた位置を示す数値を戻す。

INSTR(string, substring)
INSTR(string, substring, position)
INSTR(string, substring, position, occurrence)
string
検索対象となる文字列
substring
検索する部分文字列
position
検索を開始する位置。省略した場合はデフォルト値である1が設定される。
occurrence
部分文字列が表れる回数。省略した場合はデフォルト値である1が設定される。

string中のpositionの位置から検索して、substringoccurrence番目に現れた位置を示す数値。指定条件で現れなかった場合は0を戻す。

LOWER

文字列stringに含まれる文字をすべて小文字に変換した文字列を戻す。

LOWER(string)
SELECT ename, LOWER(ename) FROM emp
ename LOWER(ename)
Tsukamoto Hiroyuki tsukamoto hiroyuki

MOD

MODは剰余(割り算の余り)を返す関数である。

MOD(n1, n2)

n1n2で割った余りを戻り値として返す。

MOD関数を使用したSQL文の例を示す。

SQL> SELECT MOD(12, 5) FROM DUAL;

MOD(12,5)
----------
         2

SQL> SELECT MOD(12, 6) FROM DUAL;

MOD(12,6)
----------
         0

SQL>

SUBSTR

SUBSTRは、文字列の一部を切り出すSQL関数である。

SUBSTR(文字列, 開始位置)
SUBSTR(文字列, 開始位置, 文字数)

開始位置を後ろから(右から)指定するには、負の数を指定する。

SUBSTR関数の使用例を示す。

SELECT name, SUBSTR(name, 2), SUBSTR(name, -2), SUBSTR(name, 1, 2) FROM students;
name SUBSTR(name, 2) SUBSTR(name, -2) SUBSTR(name, 1, 2)
SATO NEO ATO NEO EO SA
佐藤愛桜 藤愛桜 愛桜 佐藤

SUBSTRB

文字列charの中から、start番目から始まる長さlengthの文字列を抜き出して戻す。SUBSTRとは異なり、文字数ではなくバイト数で指定する。

SUBSTRB(char, start)
SUBSTRB(char, start, length)
char
文字列
start
charから文字列を抜き出す開始位置。startが負の場合、charの終わりから逆方向に数えた位置を表す。
length
抜き出すバイト数。省略した場合、charの最後まで抜き出す。

UPPER

文字列stringに含まれる文字をすべて大文字に変換した文字列を戻す。

UPPER(string)
string
大文字にする文字列
SELECT ename, UPPER(ename) FROM emp
ename UPPER(ename)
Tsukamoto Hiroyuki TSUKAMOTO HIROYUKI