Symfoware Server SQLビギナーズガイド - FUJITSU -
目次 索引 前ページ次ページ

第2章 データを検索する方法> 2.2 特定の列以外を取り出す

2.2.1 データ間で四則演算をする

これまでは、表から列の値をそのまま取り出す方法を説明しました。単一行SELECT文では、列の値に対して四則演算を実施した結果を取り出すことができます。それには、選択リストに演算式を指定します。指定例を以下に示します。

在庫表から、製品番号が“215”の製品の在庫数量に10を加算した結果を取り出します。
SELECT 在庫数量 + 10 INTO :STOCKQTY

       FROM 在庫管理.在庫表 WHERE 製品番号 = 215

+”は加算を行う演算子です。ほかに、減算を行う“-”、乗算を行う“*”、および除算を行う“/”が演算子として使用できます。また、“10”は在庫数量に加算する値を定数で指定しています。列と定数のほかに、ホスト変数や、列どうしでの演算も可能です。

上記の例の単一行SELECT文を実行すると、ホスト変数“STOCKQTY”には“15”が格納されます。

■演算の指定方法

演算式で使用する演算子には、単項演算子と二項演算子があります。

◆単項演算

単項演算子には以下の2つがあります。

+:無作用

-:符号反転

◆二項演算

二項演算子には以下の4つがあります。

+:加算

-:減算

*:乗算

/:除算

以下に演算式の指定方法と意味を示します。

[表:演算式の指定方法と意味]

種類

演算子

指定方法

意味

単項演算

+

+演算項

演算項に影響を与えません。

-

-演算項

演算項の符号を反転します。

二項演算

+

演算項+演算項

左項と右項を加算します。

-

演算項-演算項

左項から右項を減算します。

*

演算項*演算項

左項と右項を乗算します。

/

演算項/演算項

左項を右項で除算します。

演算項には、列名、ホスト変数、または定数を指定します。あるいは、演算式の結果を演算項として指定することもできます。ただし、単項演算の演算項に演算式を指定する場合には、演算式を括弧で囲って指定することが必要です。

■演算の優先順

演算の優先順序は以下のとおりです。

  1. 単項演算

  2. 乗算および除算

  3. 加算および減算

また、括弧(“(”および“)”)を使用して優先順序を指定することができます。括弧の中の式は、ほかに先立って実行されます。

■演算式の結果のデータ

演算項と結果のデータ型の関係を説明します。

◆単項演算子の結果のデータ

単項演算子の結果のデータ型は、演算項のデータ型になります。

◆二項演算子の結果のデータ

二項演算子の結果のデータ型を以下に示します。なお、1つの演算式に複数の演算子を指定した場合も、結果のデータ型は演算子ごとに決まります。演算式中のすべての演算子について、演算の優先順序に従い以下の規則を適用することにより、演算式の最終的なデータ型を求めることができます。

[表:二項演算子の結果のデータ型]

注1) 左項がSMALLINTの場合、p1=5、q1=0として扱います。(1)
   左項がINTEGERの場合、p1=10、q1=0として扱います。(2)
   右項がSMALLINTの場合、p2=5、q2=0として扱います。(3)
   右項がINTEGERの場合、p2=10、q2=0として扱います。(4)
注2) q1+q2>18となるとエラーになります。
注3) 左項がSMALLINT、INTEGER、DECIMAL、NUMERICの場合、REALとして扱います。(5)
   右項がSMALLINT、INTEGER、DECIMAL、NUMERICの場合、REALとして扱います。(6)
注4) 左項がSMALLINT、INTEGER、DECIMAL、NUMERICの場合、DOUBLE PRECISIONとして扱います。(7)
   右項がSMALLINT、INTEGER、DECIMAL、NUMERICの場合、DOUBLE PRECISIONとして扱います。(8)
注5) 乗算以外の二項演算はエラーになります。
注6) 乗算、除算以外の二項演算はエラーになります。

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2007