カラムに対する四則演算
SQLiteでは利用可能な演算子が用意されておりWHERE句の条件式などでも利用されていますが、取得するカラムの値に対して乗算を行ったり、カラムとカラムの値で演算したりすることもできます。ここではカラムに対する四則演算について解説します。
SQLiteでは次の演算子が用意されています。
優先順位高い ---------------- || * / % + - << >> & | < <= > >= = == != <> IN LIKE GLOB MATCH REGEXP AND OR ---------------- 優先順位低い
演算子は上に記載されているほど優先順位が高くなっています。
また単項演算子として次のものが用意されています。
- + ~ NOT
比較演算子及び論理演算子についてはWHERE句の条件式などで使用されます。これらについては「取得するデータの条件を設定(WHERE句)」を参照して下さい。ここでは四則演算に関する演算子について確認します。
四則演算に関する演算子は次のものが用意されています。
a + b aにbを加える a - b aからbを引く a * b aにbをかける a / b aをbで割る a % b aをbで割った余り
これらの演算子はSELECT文の中でどのカラムの値を取得するのかを指定するところで次のように使用することができます。
SELECT カラム名 演算子 値 FROM テーブル名;
例えばデータを取得する時に特定のカラムの値を1.08倍した結果を取得したい場合は次のように記述することができます。
select id, uriage * 1.08 from report;
この場合は「uriage」カラムの値に1.08を乗じた値を取得することになります。
またカラムとカラムで四則演算を行った結果を取得することもできます。
select id, tanka * kosuu from report;
この場合は「tanka」カラムと「kosuu」カラムの値を掛け合わした値を取得することになります。
----
それでは実際に試してみます。次のようなテーブルを作成しました。
create table earn(name text, num integer, price integer, discount integer);
このテーブルにはいくつかのデータが格納されており、そのままデータを取得した場合には次のようになります。
select * from earn;
それでは四則演算を使って(「num」カラムの値)×(「price」カラムの値)-(「discount」カラムの値)の計算結果を取得してみます。
select *, num * price - discount from earn;
このようにカラムの値に対して四則演算を行った結果を取得することができます。
----
なお先ほどの例のように演算を行った結果を取得すると、その結果の「カラム名」は「num * price - discount」のようになります。
演算結果のカラムにはAS句を使って別の名前を付けることができます。(AS句の詳細は「取得データのカラムに別名を付ける(AS句)」を参照して下さい)。では実際に試してみます。
select *, num * price - discount as result from earn;
「num * price - discount」となっていた演算結果のカラムの名前を「result」カラムという指定した名前に変更することができました。
( Written by Tatsuo Ikura )