SQL関数とは、データベースの問い合わせ言語であるSQLから利用できる関数です。この記事では、OracleデータベースにおけるSQL関数の使い方を紹介しています。
DECODE(expr, condition1, value1, condition2, value2...)
DECODE(expr, condition1, value1, condition2, value2..., default)
文字列から部分文字列を検索し、現れた位置を示す数値を戻す。
INSTR(string, substring)
INSTR(string, substring, position)
INSTR(string, substring, position, occurrence)
string中のpositionの位置から検索して、substringがoccurrence番目に現れた位置を示す数値。指定条件で現れなかった場合は0を戻す。
文字列stringに含まれる文字をすべて小文字に変換した文字列を戻す。
LOWER(string)
SELECT ename, LOWER(ename) FROM emp
ename | LOWER(ename) |
---|---|
Tsukamoto Hiroyuki | tsukamoto hiroyuki |
MODは剰余(割り算の余り)を返す関数である。
MOD(n1, n2)
n1をn2で割った余りを戻り値として返す。
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は、文字列の一部を切り出す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 |
佐藤愛桜 | 藤愛桜 | 愛桜 | 佐藤 |
文字列charの中から、start番目から始まる長さlengthの文字列を抜き出して戻す。SUBSTRとは異なり、文字数ではなくバイト数で指定する。
SUBSTRB(char, start)
SUBSTRB(char, start, length)
文字列stringに含まれる文字をすべて大文字に変換した文字列を戻す。
UPPER(string)
SELECT ename, UPPER(ename) FROM emp
ename | UPPER(ename) |
---|---|
Tsukamoto Hiroyuki | TSUKAMOTO HIROYUKI |