ABS
|
ABSは、nの絶対値を戻す
SQL> SELECT ABS(+1) FROM DUAL;
ABS(+1)
----------
1
SQL> SELECT ABS(-1) FROM DUAL;
ABS(-1)
----------
1
|
ADD_MONTHS
|
ADD_ MONTHSは、日付dにnか月を加えて戻す
引数nには、任意の整数を指定できる
dが月の最終日の場合、または結果の月の日数がdの日付コンポーネントよりも
少ない場合、戻される値は結果の月の最終日となる
それ以外の場合、結果は dと同じ日付コンポーネントを持つ
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
--------
02-10-28
SQL> SELECT ADD_MONTHS(SYSDATE,1) FROM DUAL;
ADD_MONT
--------
02-11-28
SQL> SELECT ADD_MONTHS('02-11-30',1) FROM DUAL;
ADD_MONT
--------
02-12-31
ADD_MONTH(日付型,n) 日付にnか月を加算
|
ASCII
|
ASCIIは、charの最初の文字のデータベース・キャラクタ・セットでの
10進表記を戻す
データベース・キャラクタ・セットが7ビットのASCIIの場合、
この関数は ASCII値を戻す
データベース・キャラクタ・セットがEBCDICコードの場合、
この関数は EBCDIC値を戻す
この関数と一致する EBCDIC文字関数は存在しません
SQL> SELECT ASCII('A') FROM DUAL;
ASCII('A')
----------
65
|
AVG
|
平均値を返す
SELECT AVG(列名) FROM 表名;
|
CEIL
|
指定値以上の最も小さい整数値を返す
SQL> SELECT CEIL(0.5) FROM DUAL;
CEIL(0.5)
----------
1
|
CHR
|
等しい2進数をもつ文字を返す
改行なら
SQL> SELECT 'A' || CHR(10) || 'B'FROM DUAL;
'A'||C
------
A
B
|
CONCAT
|
文字列の連結
SQL> SELECT CONCAT('A','B') FROM DUAL;
CONC
----
AB
|
DECODE
|
ifのような制御
DECODE(比較元,比較値1,真の返り値1,偽の返り値1)
SQL> SELECT DECODE(1,1,2,3) FROM DUAL;
DECODE(1,1,2,3)
---------------
2
SQL> SELECT DECODE(1,2,2,3) FROM DUAL;
DECODE(1,1,2,3)
---------------
3
|
FLOOR
|
指定値以下の最も大きい整数値を返す
SQL> SELECT FLOOR(1.5) FROM DUAL;
FLOOR(1.5)
----------
1
|
GREATEST
|
比較の値(複数指定可能)の最大値を返す
SQL> SELECT GREATEST(1,2,3) FROM DUAL;
GREATEST(1,2,3)
---------------
3
SQL> SELECT GREATEST('A','B','C') FROM DUAL;
GR
--
C
SQL> SELECT GREATEST('A','B','C','AA','BB','CC') FROM DUAL;
GREA
----
CC
|
INITCAP
|
最初の文字を大文字に
SQL> SELECT INITCAP('abcdefg') FROM DUAL;
INITCAP('ABCDE
--------------
Abcdefg
|
INSTR/INSTRB
|
文字列を指定の文字列で検索し、出現位置を返す
INSTRは文字数
INSTRBはバイト数として返す
SQL> SELECT INSTR('abcdefg','efg') FROM DUAL;
INSTR('ABCDEFG','EFG')
----------------------
5
SQL> SELECT INSTR('あいうえお','う') FROM DUAL;
INSTR('あいうえお','う')
------------------------
3
SQL> SELECT INSTRB('あいうえお','う') FROM DUAL;
INSTR('あいうえお','う')
------------------------
5
SQL> SELECT INSTRB('あaいbうcえdおe','う') FROM DUAL;
INSTRB('あAいBうCえDおE','う')
------------------------------
7
|
LAST_DAY
|
月の最後の日を返す
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
--------
02-10-28
SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL;
LAST_DAY
--------
02-10-31
|
LEAST
|
比較の値(複数指定可能)の最小値を返す
SQL> SELECT LEAST(1,2,3) FROM DUAL;
LEAST(1,2,3)
------------
1
|
LENGTH/LENGTHB
|
LENGTH:長さを文字数で返す
LENGTHB:長さをバイト数で返す
SQL> SELECT LENGTH('abcdef') FROM DUAL;
LENGTH('ABCDEF')
----------------
6
SQL> SELECT LENGTH('あいうえお') FROM DUAL;
LENGTH('あいうえお')
--------------------
5
SQL> SELECT LENGTHB('あいうえお') FROM DUAL;
LENGTHB('あいうえお')
---------------------
10
|
LOWER
|
小文字で返す
SQL> SELECT LOWER('ABCDEFG') FROM DUAL;
LOWER('ABCDEFG
--------------
abcdefg
|
LPAD
|
文字列の左に指定文字を連続的にセットしたうえ、指定桁数にして返す
SQL> SELECT LPAD('c',15,'12') FROM DUAL;
LPAD('C',15,'12')
------------------------------
12121212121212c
指定桁数があふれる場合は、その時点まで
SQL> SELECT LPAD('c',16,'12') FROM DUAL;
LPAD('C',16,'12')
--------------------------------
121212121212121c
※2バイト文字が混在する場合:指定桁数はバイト数
SQL> SELECT LPAD('c',4,'あいう') FROM DUAL;
LPAD('C'
--------
あc
|
LTRIM
|
左側の空白を取り除く
SQL> SELECT LTRIM(' abcdefg') FROM DUAL;
LTRIM('ABCDEFG
--------------
abcdefg
左側の指定文字'a'を取り除く
SQL> SELECT LTRIM('abcdefg','a') FROM DUAL;
LTRIM('ABCDE
------------
bcdefg
|
MAX
|
最大値を返す
SELECT MAX(列名) FROM 表名;
|
MIN
|
最小値を返す
SELECT MIN(列名) FROM 表名;
|
MOD
|
余りを返す
SQL> SELECT MOD(3,2) FROM DUAL;
MOD(3,2)
----------
1
|
MONTHS_BETWEEN
|
日付間の月数を戻す
小数部は1ヶ月31日として計算する
SQL> SELECT MONTHS_BETWEEN(TO_DATE('02-02-2002','MM-DD-YYYY'),
TO_DATE('01-01-2002','MM-DD-YYYY')) BETWEEN_M FROM DUAL;
BETWEEN_M
----------
1.03225806
|
NEXT_DAY
|
指定した日付以降で、指定した曜日の次の日付を返す
SQL> SELECT NEXT_DAY(TO_DATE('2002-10-28','YYYY-MM-DD'),'金') FROM DUAL;
NEXT_DAY
--------
02-11-01
|
NVL
|
指定した値がNULLのとき、代わりに指定した値を返す
SELECT NVL(列1,列2) FROM 表名;
SQL> SELECT NVL('','ABC') FROM DUAL;
NVL(''
------
ABC
SQL> SELECT NVL('123','ABC') FROM DUAL;
NVL('1
------
123
|
NVL2
|
NVLと原理は同じだが、引数を3つまで指定可能
1つめ NULL 3つめを返す
SQL> SELECT NVL2('','ABC','!?') FROM DUAL;
NVL2
----
!?
1つめ NULLでない 2つめを返す
SQL> SELECT NVL2('123','ABC','!?') FROM DUAL;
NVL2
----
ABC
|
POWER
|
指定した値をn乗する
SQL> SELECT POWER(2,2) FROM DUAL;
POWER(2,2)
----------
4
|
ROUND(数値関数)
|
四捨五入する
0が小数点位置となり、整数は小数点位を表し、マイナスは整数位を表す
1指定→少数1位まで求める=2位を四捨五入
SQL> SELECT ROUND(123.456,1) FROM DUAL;
ROUND(123.456,1)
----------------
123.5
0指定→整数部まで求める=1位を四捨五入
SQL> SELECT ROUND(234.567,0) FROM DUAL;
ROUND(234.567,0)
----------------
235
-1指定→十の位まで求める=一の位を四捨五入
SQL> SELECT ROUND(345.678,-1) FROM DUAL;
ROUND(345.678,-1)
-----------------
350
|
ROUND(日付関数)
|
指定した書式に丸めた結果を返す
SQL> SELECT ROUND(TO_DATE('2002-OCT-01'),'YEAR') "Nex Year" FROM DUAL;
Nex Year
--------
03-01-01
|
RTRIM
|
右側の空白を取り除く
SQL> SELECT '|' || RTRIM('abcdefg ') || '|'FROM DUAL;
'|'||RTRIM('ABCDEF
------------------
|abcdefg|
右側の指定文字'a'を取り除く
SQL> SELECT RTRIM('abcdefg','g') FROM DUAL;
RTRIM('ABCDE
------------
abcdef
|
REPLACE
|
指定した値を指定した文字に置き換える
SQL> SELECT REPLACE('ABCDEFG','A','X') FROM DUAL;
REPLACE('ABCDE
--------------
XBCDEFG
SQL> SELECT REPLACE('ABCDEFG','AB','XY') FROM DUAL;
REPLACE('ABCDE
--------------
XYCDEFG
|
RPAD
|
指定した長さまで指定した文字を連続的に埋め込みその値を返す
SQL> SELECT RPAD('123',10,'ABC') FROM DUAL;
RPAD('123',10,'ABC')
--------------------
123ABCABCA
SQL> SELECT RPAD('123',10,'あいう') FROM DUAL;
RPAD('123',10,'あい
--------------------
123あいう
|
SUBSTR/SUBSTRB
|
SUBSTRは、指定値のm番目の文字からn文字分の文字列を抜き出して戻す
SQL> SELECT SUBSTR('ABCDEFG',3,4) FROM DUAL;
SUBSTR('
--------
CDEF
mが負の場合、指定値の終りから数える
SQL> SELECT SUBSTR('ABCDEFG',-3,2) FROM DUAL;
SUBSTR
------
EF
SUBSTRBは、指定値のm番目の文字からnバイト分の文字列を抜き出して戻す
SQL> SELECT SUBSTRB('あいうえお',3,4) FROM DUAL;
SUBSTRB(
--------
いう
|
SUM
|
指定値の合計を返す
SELECT SUM(列名) FROM 表名;
|
SYSDATE
|
ローカル・データベース上の日時を戻す
SQL> SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
TO_CHAR(SYSDATE,'YYYY/MM/DDHH24:MI:SS'
--------------------------------------
2002/10/29 09:44:21
|
TO_CHAR(日付変換)
|
DATE型をVARCHAR2型に変換
SQL> SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
TO_CHAR(SYSDATE,'YYYY/MM/DDHH24:MI:SS'
--------------------------------------
2002/10/29 09:44:21
|
TO_CHAR(数値変換)
|
NUMBER型をVARCHAR2型に変換
SQL> SELECT TO_CHAR(123.456) FROM DUAL;
TO_CHAR(123.45
--------------
123.456
|
TO_DATE
|
CHAR、VARCHAR2型をDATE型に変換
SQL> SELECT TO_DATE('2002/10/31') FROM DUAL;
TO_DATE(
--------
02-10-31
|
TO_NUMBER
|
CHAR、VARCHAR2型をNUMBER型に変換
SQL> SELECT TO_NUMBER('123.456') FROM DUAL;
TO_NUMBER('123.456')
--------------------
123.456
|
TRANSLATE
|
TRANSLATE(指定値,FROM値,TO値)
from内のすべての文字をto内の対応する文字に置換してcharを戻す
「1」は「A」
「2」は「B」
「3」は「C」
「4」は「D」
「5」は「E」に変換さる
よって「123」は「ABC」となる
SQL> SELECT TRANSLATE('123','12345','ABCDE') FROM DUAL;
TRANSLATE(
----------
ABC
「1」は「1」
「2」は「2」
「3」は「3」
「4」は「4」
「5」は「5」
「A」は「」(NULL)
「B」は「」(NULL)
「C」は「」(NULL)
「D」は「」(NULL)
「E」は「」(NULL)に変換される
SQL> SELECT TRANSLATE('12345ABCDE','12345ABCDE','12345') FROM DUAL;
よって「12345ABCDE」は「12345」となる
TRANSLATE(
----------
12345
|
TRIM
|
指定文字を切り捨てる
LEADING 先行文字を切り捨てる
TRAILING 後続文字を切り捨てる
BOTH 両方を切り捨てる
何も指定しない 両方を切り捨てる
指定文字がない場合は空白を切り捨てる
SQL> SELECT TRIM(LEADING '0' FROM '0123450')" TRIM Example" FROM DUAL;
TRIM Exampl
------------
123450
SQL> SELECT TRIM(TRAILING '0' FROM '0123450')" TRIM Example" FROM DUAL;
TRIM Exampl
------------
012345
SQL> SELECT TRIM(BOTH '0' FROM '0123450')" TRIM Example" FROM DUAL;
TRIM Exam
----------
12345
|
TRUNC(数値関数)
|
指定した位で切り捨てる
SQL> SELECT TRUNC(123.456,1) FROM DUAL;
TRUNC(123.456,1)
----------------
123.4 ←少数第一位まで求める
SQL> SELECT TRUNC(123.456,0) FROM DUAL;
TRUNC(123.456,0)
----------------
123 ←整数部まで求める
SQL> SELECT TRUNC(123.456,-1) FROM DUAL;
TRUNC(123.456,-1)
-----------------
120 ←十の位まで求める
|
TRUNC(日付関数)
|
指定した位で切り捨てる
SQL> SELECT TRUNC(TO_DATE('2002/10/31','YYYY/MM/DD'),'YEAR') FROM DUAL;
TRUNC(TO
--------
02-01-01
|
UID/USER
|
UID:ログインしているユーザを一意に識別する値を返す
USER:ログインしているユーザを返す
SQL> SELECT USER,UID FROM DUAL;
USER UID
--------- ----
SYSTEM 27
|
UPPER
|
大文字で返す
SQL> SELECT UPPER('abcdefg') FROM DUAL;
UPPER('abcdefg
--------------
ABCDEFG
|
VSIZE
|
内部表現でのバイト数を返す
SQL> SELECT VSIZE('123') FROM DUAL;
VSIZE('123')
------------
3
|