スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
SQLの値式中に四則演算を使用した検索ができます。四則演算の種類と機能を次の表に示します。
表2-13 四則演算の種類と機能
四則演算 | 意味 | 機能 | |
---|---|---|---|
+ | (単項演算) | 正符号 | 符号を反転しません。 |
(2項演算) | 加算 | 第1演算項に第2演算項を加えます。 | |
− | (単項演算) | 負符号 | 符号を反転します。 |
(2項演算) | 減算 | 第1演算項から第2演算項を減らします。 | |
* | (2項演算) | 乗算 | 第1演算項に第2演算項を掛けます。 |
/ | (2項演算) | 除算 | 第1演算項を第2演算項で割ります。 |
第1演算項データ型が,SMALLINT,INTEGER,DECIMAL,SMALLFLT,及びFLOATの場合の,四則演算(2項演算)の演算項のデータ型と演算結果のデータ型の関係を次の表に示します。
表2-14 四則演算(2項演算)の演算項のデータ型と演算結果のデータ型の関係
第1演算項データ型 | 第2演算項データ型 | ||||
---|---|---|---|---|---|
SMALLINT | INTEGER | DECIMAL | SMALLFLT | FLOAT | |
SMALLINT | INTEGER | INTEGER | DECIMAL | SMALLFLT | FLOAT |
INTEGER | INTEGER | INTEGER | DECIMAL | FLOAT | FLOAT |
DECIMAL | DECIMAL | DECIMAL | DECIMAL | FLOAT | FLOAT |
SMALLFLT | SMALLFLT | FLOAT | FLOAT | SMALLFLT | FLOAT |
FLOAT | FLOAT | FLOAT | FLOAT | FLOAT | FLOAT |
第1演算項データ型が,CHAR,VARCHAR,MCHAR,及びMVARCHARの場合,又は第1演算項データ型がSMALLINT,INTEGER,DECIMAL,SMALLFLT,及びFLOATの場合で,第2演算項データ型が,CHAR,VARCHAR,MCHAR,及びMVARCHARのときの,四則演算(2項演算)の演算項のデータ型と演算結果のデータ型の関係について説明します。
文字データはその値の文字列表現によって次の数データ型に変換されます。演算結果のデータ型は変換後の数データ型を用いて,「表2-14 四則演算(2項演算)の演算項のデータ型と演算結果のデータ型の関係」によって決定します。
四則演算は,既に示したデータ型で演算されます。単項演算の場合の演算結果のデータ型は,演算項のデータ型と同じです。四則演算の結果のデータ型が,DECIMALの場合の結果の精度と位取りを次の表に示します。
表2-15 四則演算の結果のデータ型がDECIMALの場合の結果の精度と位取り
四則演算結果のデータ型 | 精度と位取り | ||
---|---|---|---|
加減算の場合 | 乗算の場合 | 除算の場合 | |
DECIMAL(p,s) | p=1+max(p1−s1,p2−s2)+s s=max(s1,s2) |
p=p1+p2 s=s1+s2 |
P=max_prec s=max(0,max_prec−((p1−s1)+s2)) |
DECIMAL(p',s') (p>max_precの場合) |
p'=max_prec s'=max(s1,s2) |
該当しません。 |
表2-16 DECIMAL型の精度の最大値
システム共通定義pd_sql_dec_op_maxprecオペランド | 第1演算項の精度p1と第2演算項の精度p2 | max_precの値 |
---|---|---|
29又は省略 | p1≦29かつp2≦29 | 29 |
p1>29又はp2>29 | 38 | |
38 | 任意 | 38 |
四則演算を使用する場合の規則については,次に示す規則と,「2.9 値式,値指定,及び項目指定」の共通規則を参照してください。
図2-5 結果のデータ型
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.