+ 演算子 - 加算する -

SQL-92/99   Oracle DB2 SQL Server MySQL PostgreSQL Access

数値式1 + 数値式2
文字列式1 + 文字列式2
日付式 + 数値式

 + 演算子は、数値データを足し算するときに使用します。

-- 【説明】
-- 次の SQL 文は、「SALE」列と「POINT」列を加算したデータを取得します。

SELECT C_ID, SALE + POINT FROM T_11_1


C_IDSALE + POINT
90010113200
90010214300
900103 5500
900104 5973
900105 6050

 SQL Server / Access では、+ 演算子を使用して文字列データを連結することができます。 なお、Oracle / DB2 / PostgreSQL で文字列を連結する場合には、|| 演算子を使用します。

-- 【説明】
-- 次の SQL 文は、「L_NAME」列と「F_NAME」列を連結したデータを取得します。

SELECT L_NAME + F_NAME AS 氏名 FROM T_01_1;


氏名
山田晴男
佐藤愛
鈴木二郎
田中栄吉
木村匠

 Oracle / SQL Server では、+ 演算子を使用して日付データと数値データを足し算することができます。 ただし、数値データは日数として扱われるため、月単位の足し算を行う場合には、月の日数を計算する必要があります。 なお、Oracle / SQL Server で月単位の計算を行う場合には、ADD_MONTHS 関数(Oracle)や DATEADD 関数(SQL Server)を使用します。

-- 【説明】
-- 次の SQL 文は、現在の日付に「10」日を加算します。

-- Oracle

SELECT CURRENT_DATE, CURRENT_DATE + 10 FROM DUAL;


CURRENT_DATECURRENT_DATE + 10
06-06-1406-06-24

-- SQL Server

SELECT GETDATE(), GETDATE() + 10;


GETDATE()GETDATE() + 10
2006-06-14 10:11:50.5002006-06-24 10:11:50.500

 MySQL / PostgreSQL では、+ 演算子を使用して日付データと数値データを足し算することができます。 ただし、数値データには INTERVAL キーワードの指定、さらに数値と日付タイプを指定する必要があります。 なお、PostgreSQL では、日付データとして認識させるため、DATE 関数を使用するほか、数値と日付タイプは、「'(シングルクォーテーション)」で括る必要があります。

-- 【説明】
-- 次の SQL 文は、日付の「2006-06-01」に「1」カ月を加算します。

-- MySQL

SELECT '2006-06-01' + INTERVAL 1 MONTH AS NEXT_1MONTH;


NEXT_1MONTH
2006-07-01

-- PostgreSQL

SELECT DATE('2006-06-01') + INTERVAL '1 MONTH' AS NEXT_1MONTH;


NEXT_1MONTH
2006-07-01 00:00:00

参考表

T_01_1

IDL_NAMEF_NAMESEX
100101山田晴男1
100102佐藤2
100103鈴木二郎1
100104田中栄吉1
100105木村1

T_11_1

C_IDSALERATEPOINTUPDATE_TIME
9001011200010.00120006-06-01
9001021300010.00130006-06-02
900103 500010.00 50006-06-01
900104 543010.00 54306-06-07
900105 550010.00 55006-06-05