クエリ中に一般的な算術操作符には、+(加)、-(減)、*(乗)、/(除)、-(反転)、MOD(剰余)が含まれます。これらの演算子は数値データ型の列に作用することができます。本記事では、具体的な例を通じてクエリ内で算術演算子を使用する方法を紹介します。
例
条件に合致する顧客が購入した各商品の数量と価格を照会します。数量に価格を掛けることで、各商品の支払い総額が得られます。select_list に列 t2.ol_quantity * t3.i_price を追加し、item_sum_price に名前を変更します。
custテーブルを作成します。obclient> CREATE TABLE cust ( c_id NUMBER, c_first VARCHAR2(20), c_last VARCHAR2(20), c_credit NUMBER(10, 2) ); Query OK, 0 rows affectedordrテーブルを作成します。obclient> CREATE TABLE ordr ( o_id NUMBER, o_ol_cnt NUMBER, o_entry_d DATE ); Query OK, 0 rows affecteditemテーブルを作成します。obclient> CREATE TABLE item ( i_id NUMBER, i_name VARCHAR2(20), i_price NUMBER(10, 2) ); Query OK, 0 rows affectedcustテーブルにデータを挿入します。obclient> INSERT INTO cust VALUES(101,'Ann','Smith',16.10), (102,'Madeleine','Johnson',23.00), (103,'Michael','Brown',9.05); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0ordrテーブルにデータを挿入します。obclient> INSERT INTO ordr VALUES(102,400,date'2020-01-23'), (103,400,date'2020-01-23'),(104,300,date'2020-09-18'), (105,100,date'2020-07-01'); Query OK, 4 rows affected Records: 4 Duplicates: 0 Warnings: 0itemテーブルにデータを挿入します。obclient> INSERT INTO item VALUES(102,'Apple','12.9'), (103,'Banana','10.2'),(105,'Pear','9.8'); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0条件に合致する顧客が購入した各商品の数量と価格をクエリします。
obclient> SELECT t1.c_first, t1.c_last, t1.c_credit, t2.o_ol_cnt * t3.i_price item_sum_price, t2.o_entry_d, t3.i_name, t3.i_price FROM cust t1 JOIN ordr t2 ON (t1.c_id=t2.o_id) JOIN item t3 ON (t2.o_id=t3.i_id) ORDER BY t1.c_id, t2.o_id; +-----------+---------+----------+----------------+-----------+--------+---------+ | C_FIRST | C_LAST | C_CREDIT | ITEM_SUM_PRICE | O_ENTRY_D | I_NAME | I_PRICE | +-----------+---------+----------+----------------+-----------+--------+---------+ | Madeleine | Johnson | 23 | 5160 | 23-JAN-20 | Apple | 12.9 | | Michael | Brown | 9.05 | 4080 | 23-JAN-20 | Banana | 10.2 | +-----------+---------+----------+----------------+-----------+--------+---------+ 2 rows in set