【SQL算術関数】GREATEST ? 引数の中から最大値を返す (Oracle)

Oracleでは、2つ以上の引数の中から最大値を返すGREATEST関数があります。逆に引数の中から最小値を返すにはLEAST関数を使います。


文法:

GREATEST(a, b [, c, .....] )

引数の中から最大値を返す。引数は2つ以上でいくつでも設定できる。



使用例:英語、数学、物理のテストの点数から最高点を求める。

SELECT user, english, math, physics, GREATEST(english, math, physics) FROM tbExamTable;

user     english  math  physics  GREATEST(english, math, physics)
—————————————————————————————————
Yamada   56     33    79     79
Kawai    80     67    46     80



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】CURRENT_DATE ? 現在の日付を取得する (Oracle)

OracleではCURRENT_DATE関数を使って現在の日付を取得する事ができます。OracleにはSYSDATE関数でも現在の日付を取得する事ができます。CURRENT_DATE関数には括弧は不要です(CURRENT_DATE()とするとエラーとなる)。


使用例:現在の日付を取得する。

SELECT CURRENT_DATE FROM DUAL;

CURRENT_DATE
—————————
09-09-14



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】SYSDATE ? 現在の日付を取得する (Oracle)

Oracleで、現在の日付を取得するにはSYSDATE関数を使います。Oracleの場合、SYSDATEに括弧は不要ですのでご注意を(例:SYSDATE()はエラーになる)。SQL Serverの場合はGETDATE関数を使います。


使用例:現在の日付を取得する。

SELECT SYSDATE FROM DUAL;

SYSDATE
————————-
09-09-14



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】SQRT ? 平方根(ルート)を求める (Oracle、SQL Server)

OracleやSQL Serverで数値の平方根を求めるには、SQRT関数を使います。SQRTはSqare Rootの略です。


文法:

SQRT(value)

valueの平方根を求める。



使用例:数値の平方根を求める。

SELECT number, SQRT(number) FROM tbTestTable;

number   SQRT(number)
——————————————-
4       2
5       2.23606797749979
144     12
36      6



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】SQUARE ? 値を2乗する (SQL Server)

SQL Serverで、値を2乗するにはSQUARE関数を使います。


文法:

SQUARE(value)

valueの値を2乗する。



使用例:ポイントを2乗する。

SELECT point, SQUARE(point) FROM tbTestTable;

point   SQUARE(point)
——————————————-
4     16
1     1
-2     4
8     64



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】TRUNC ? 数値を切り捨てる (Oracle)

Oracleで数値を切り捨てるにはTRUNC関数を使います。SQL ServerはROUND関数を使って四捨五入と切り捨ての両方の処理を行う事ができます。


文法:

TRUNC(value [ , d ])

valueに指定した値を切り捨てる。dで小数点何ケタを残して切り捨てる事もできる。



使用例:小数点は全て切り捨てる

SELECT value, TRUNC(value) FROM tbTestTable;
value     TRUNC(value)
———————————————
3.14      3
2.85      2
5.55334    5



使用例:小数点1ケタを残して切り捨てる

SELECT value, TRUNC(value, 1) FROM tbTestTable;
value      TRUNC(value, 1)
——————————————–
3.14      3.1
2.85      2.8
5.55334    5.5



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】ROUND ? 四捨五入を行う(まるめる) (Oracle、SQL Server)

ROUND関数は数値を四捨五入する関数ですが、MS SQLとOracleでは若干使い方が違います。OracleではROUND関数の引数に指定した数値を四捨五入しますが、MS SQLの場合は四捨五入するか切り捨てるかの指定を行う必要があります。つまり、MS SQLの場合はROUND関数はOracleのTRUNC関数と同じ機能を持つことになります。



文法:

ROUND(value, d [, type] )   SQL Server
ROUND(value [, d] )      Oracle

SQL Serverの場合、typeに従ってvalueの値をdで指定した小数点以下の桁数で四捨五入もしくは切り捨てる。typeに0以外の数値を指定すると、ROUND関数は切り捨てした値を返す。
Oracleの場合、dで指定した小数点以下の桁数で四捨五入する。



使用例:テストの平均点を四捨五入する。(SQL Server)

SELECT score, ROUND(score, 0) FROM tbScoreTable;

score     ROUND(score, 0)
———————————————–
40.323    40.000
63.678    64.000
89.835    90.000



使用例:テストの平均点を小数点2桁まで残して四捨五入する。(Oracle)

SELECT score, ROUND(score, 2) FROM tbScoreTable;

score     ROUND(score, 2)
———————————————-
40.323    40.320
63.678    63.680
89.835    89.840



使用例:テストの平均点を小数点1ケタを残して切り捨てる(SQL Server)

SELECT score, ROUND(score, 1, 1) FROM tbScoreTable;

score     ROUND(score, 1, 1)
———————————————
40.323    40.300
63.678    63.600
89.835    89.800



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】SIGN ? 符号を取得する (Oracle、SQL Server)

SQL ServerやOracleで数値の符号を取得するにはSIGN関数を使います。数値がプラスの時は1、マイナスの場合は-1、ゼロの場合は0を返します。


構文:

SIGN(value)

valueの符号を返す。



使用例:利益列の数値の符号を取得する。

SELECT earning, SIGN(earning) FROM tbSalesTable;

earning   SIGN(earning)
——————————————-
100000   1
-2500    -1
0       0
2300    1



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】RAND ? 乱数を取得する (SQL Server)

SQL Serverで乱数を取得するにはRAND関数を使います。使用例のようにRAND関数を実行するたびに乱数が発生しますが、乱数の種を指定すると、1つの乱数を返します。


文法:

RAND( [seed] )

0から1までの範囲で乱数を返す。seedに乱数の種を指定する事も可能。



使用例:乱数を取得する。

SELECT RAND();

RAND()
—————————–
0.963400850719992



SELECT RAND();

RAND()
—————————-
0.197917491935496



使用例:乱数の種を指定して乱数を取得する。

SELECT RAND(4);

RAND(4)
—————————–
0.713647892126698



SELECT RAND(4);

RAND(4)
—————————–
0.713647892126698



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】FLOOR ? 引数以下で最も大きい整数値を求める (Oracle、SQL Server)

OracleやSQL Serverで引数以下で最も大きい整数値を求めるには、FLOOR関数を使います。例えば、3.14以下で最も大きい整数値は3です。逆に引数以上で最も小さい整数値を求めるにはCEILING関数(SQL Server)もしくはCEIL関数(Oracle)を使います。



文法:

FLOOR(value)

value以下で最も大きい整数を求める。



使用例:

SELECT number, FLOOR(number), CEIL(number) FROM tbTestTable;

number   FLOOR(number)    CEIL(number)
———————————————————————
3.14      3             4
-2.31     -3             -2
10.67     10            11



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】CEIL / CEILING ? 最も小さい整数を返す (Oracle、SQL Server)

引数に指定した値に対して、それ以上で最も小さい整数値を求めるにはOracleの場合はCEIL関数、SQL Serverの場合はCEILING関数を使います。CEILINGは天井という意味があります。引数に指定した数字が整数と整数の間に挟まれていて、それの天井(CEILING)の値を求める、つまり引数に指定した数字からみて次の整数を求める、というイメージを思い浮かべればわかりやすいかもしれません。
逆に引数以下で最も大きい整数を求めるには、FLOOR関数を使います。


文法:

CEIL(n)
CEILING(n)

nに指定した値以上で、最も小さな整数値を求める。



使用例:

SELECT number, CEILING(number) FLOOR(number) FROM tbTestTable;

number    CEILING(number)    FLOOR(number)
——————————————————————————-
3.14      4              3
-2.993     -2             -3
10.43     11             10 



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】ABS ? 絶対値を取得する (Oracle、SQL Server)

OracleやSQL Serverでは、ABS関数を使って数値の絶対値を求める事が出来ます。


文法:

ABS(value)

valueの絶対値を求める



使用例:夫婦の年齢差を求める。

SELECT husband, wife, husband – wife, ABS(husband – wife) FROM tbTestTable;

husband   wife   husband – wife     ABS(husband – wife)
——————————————————————————-
34       32    2             2
25       28    -3             3
52       60    -8             8



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】MONTH ? 日付値から月を取得する (SQL Server)

SQL Serverで日付値から月の値を取得するにはMONTH関数を使います。DATEPART関数を使っても日付型の値から月を取得する事ができます。DATEPART関数とMONTH関数の違いは、DATEPART関数は引数に日付要素を指定することで、日付値から年、月、日などの様々な日付要素を取得することができますが、MONTH関数は名前の通り、月のみの取得となります。


文法:

MONTH(value)

valueで指定した日付値から月を数値として取得する。



使用例:誕生日の月を取得する。

SELECT birthday, MONTH(birthday) FROM tbEmpTable;

birthday            MONTH(birthday)
———————————————————————–
1974-12-24 00:00:00    12



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】DATEDIFF ? 日付と日付の差を取得する (SQL Server)

SQL ServerではDATEDIFF関数を使って、日付と日付の差を取得することができます。


文法:

DATEDIFF(element, d1, d2)

d1とd2の日付の差をelementで指定した日付要素に従って求める。



使用例:2つの日付の差を求める。

SELECT date1, date2, DATEDIFF(day, date1, date2) FROM tbTestTable;

date1             date2             DATEDIFF(day, date1, date2)
———————————————————————————————————————
1970-07-22 00:00:00   1999-12-12 00:00:00    10735
1970-07-22 00:00:00   1967-03-02 00:00:00    -1238


使用例:今日の日付と誕生日との日数の差を求める。

SELECT birthday, GETDATE(), DATEDIFF(day, birthday, GETDATE()) FROM tbEmpTable;

birthday           GETDATE()            DATEDIFF(day, birthday, GETDATE())
————————————————————————————————————————————-
1970-07-22 00:00:00   2009-09-09 22:31:36.090    14294
1984-12-24 00:00:00   2009-09-09 22:31:36.090    9025



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】YEAR ? 日付値から年を取得する (SQL Server)

SQL ServerではYEAR関数を使って日付値から年を取得することができます。YEAR関数の他にDATEPART関数で日付値から年を取得することができます。DATEPART関数は年だけではなく、月や日も取得することができますが、YEAR関数は年のみ取得可能です。


文法:

YEAR(value)

valueで指定した日付値から年を数値として取得する。



使用例:誕生日から年を数値として取得する。

SELECT birthday, YEAR(birthday) FROM tbEmpTable;

birthday               YEAR(birthday)
—————————————————————————–
1978-09-26 00:00:00       1987
1983-04-01 00:00:00       1983



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】DATEPART ? 日付要素を数値で取得する (SQL Server)

SQL Serverでは、DATEPART関数を使って日付値から指定した日付要素を数値で取得する事ができます。


文法:

DATEPART(element, value)

valueで指定した日付値から、elementで指定した日付要素を数値で取得する。



使用例:誕生日から曜日を数値として取得する。

SELECT birthday, DATEPART(weekday, birthday) FROM tbEmpTable;

birthday             DATEPART(weekday, birthday)
————————————————————————————————
1980-09-06 00:00:00     7
1978-12-26 00:00:00     3

曜日を数値化すると以下の通りとなります。
日曜日 = 1     木曜日 = 5
月曜日 = 2     金曜日 = 6
火曜日 = 3     土曜日 = 7
水曜日 = 4

使用例:誕生日から日を数値として取得する。

SELECT birthday, DATEPART(day, birthday) FROM tbEmpTable;

birthday              DATEPART(day, birthday)
———————————————————————————————
1980-09-06 00:00:00       6
1978-12-26 00:00:00      26


使用例:誕生日から月を数値として取得する。

SELECT birthday, DATEPART(month, birthday) FROM tbEmpTable;

birthday              DATEPART(month, birthday)
———————————————————————————————
1980-09-06 00:00:00       9
1978-12-26 00:00:00      12



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】DATENAME ? 日付要素を文字として取得する (SQL Server)

SQL Serverでは日付値から日付要素を文字列をして取得する為にDATENAME関数を使う事ができます。


文法:

DATENAME(element, value)

valueに指定した日付値の日付要素をelementの要素に従って取得する。



使用例:誕生日から曜日を取得する。

SELECT birthday, DATENAME(weekday, birthday) FROM tbEmpTable;

birthday             DATENAME(weekday, birthday)
———————————————————————————-
1970-09-08 00:00:00     火曜日


使用例:誕生日から日付のみを取得する。

SELECT birthday, DATENAME(day, birthday) FROM tbEmpTable;

birthday            DATENAME(day, birthday)
———————————————————————————-
1970-09-08 00:00:00    8


使用例:誕生日から年のみを取得する。

SELECT birthday, DATENAME(year, birthday) FROM tbEmpTable;

birthday             DATENAME(year, birthday)
———————————————————————————
1970-09-08 00:00:00     1970



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】GETDATE ? 現在の日付・時刻を取得する (SQL Server)

SQL Serverでは、GETDATE関数を使って現在の日付・時刻を取得する事ができます。


使用例:現在の日時を取得します。

SELECT GETDATE();

GETDATE()
————————————-
2009-09-07 22:00:53.267



使用例:入社した社員のデータを登録する際に、登録時の日付を登録する。

INSERT INTO tbEmpTable(empID, surname, givenname, deptCD, registered_date)
VALUE(’10001′, ‘Yamada’, ‘Eriko’, ‘300′, GETDATE());


SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】DAY ? 日付値から日の値のみ取得する (SQL Server)

SQL ServerではDAY関数を使用して、日付値から日のみ取得する事ができます。


文法:

DAY(d)

dに指定した日付値から日の値のみ取得する。



使用例:birthday列の日付から日の値のみ取得する。

SELECT birthday, DAY(birthday) FROM tbEmpTable;

birthday               DAY(birthday)
——————————————————————–
1970-08-15 03:22:07.000    15
1940-12-30 14:04:51.000    30



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】DATEADD ? 日付(日時)を加算する (SQL Server)

SQL ServerではDATEADD関数を使って、日付型の値に日時を加算する事ができます。


構文:

DATEADD(element, value, target)

targetにvalueで指定した値を加算する。elementにvalueの日付要素を記述する。日付要素は以下のようなものがある。
year(yy or yyyy) : 年
quarter(qq or q) : 四半期
month(mm or m) : 月
dayofyear(dy or y) : 年始からの日数
day(dd, d) : 日
week(wk, w) : 週
weekday(dw) : 曜日
hour(hh) : 時
minute(mi or n) : 分
second(ss) : 秒
millisecond(ms, s) : ミリ秒



使用例:birthday列の値の20日後の日付を求める。

SELECT birthday, DATEADD(day, 20, birthday) FROM tbEmpTable;

birthday               DATEADD(day, 20, birthday)
————————————————————
1970-08-01 00:00:00.000    1970-08-21 00:00:00.000



使用例:birthday列の値に14時間を加算する。

SELECT birthday, DATEADD(hour, 14, birthday) FROM tbEmpTable;

birthday               DATEADD(hour, 14, birthday)
———————————————————–
1970-08-01 00:00:00.000    1970-08-01 14:00:00.000



使用例:birthday列の値に2週間分の日付を加算する。

SELECT birthday, DATEADD(week, 2, birthday) FROM tbTestTable;

birthday              DATEADD(week, 2, birthday)
———————————————————-
1970-08-01 14:00:00.000    1970-08-15 14:00:00.000



SQLコマンド辞典に戻る

Leave a Comment

Switch to our mobile site