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

数値式1 + 数値式2


SQL Server/ Access/

文字列式1 + 文字列式2


Oracle/ SQL Server/ MySQL/ PostgreSQL/

日付式 + 数値式

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

SQL Server, Accessでは文字列データを連結、Oracle, SQL Server, MySQL, PostgreSQLでは日付データと数値データを足し算することができます。


Oracle, Db2, PostgreSQLで文字列を連結する場合には||(演算子)を使用します。

月単位の計算を行う場合、OracleではADD_MONTHS、SQL ServerではDATEADDを使用します。


関連キーワード

DATEADD






SQL実行例の説明(1)

・T1_SAMPLE表からSALEPOINTを加算したデータを取得します。


SELECT C_ID, SALE + POINT FROM T1_SAMPLE;


SQL実行の結果(1-1)

C_IDSALERATEPOINT
9001011200010.001200
9001021300010.001300
900103 500010.00 500
900104 543010.00 543
900105 550010.00 550
SQL Result
C_IDSALE + POINT
90010113200
90010214300
900103 5500
900104 5973
900105 6050



SQL実行例の説明(2)

・T1_SAMPLE表からL_NAMEF_NAMEの文字列を連結したデータを取得します。


-- SQL Server/ Access/
SELECT L_NAME + F_NAME AS 氏名 FROM T1_SAMPLE;


SQL実行の結果(2-1)

IDL_NAMEF_NAMESEX
100101山田晴男1
100102佐藤2
100103鈴木二郎1
100104田中栄吉1
100105木村1
SQL Result
氏名
山田晴男
佐藤愛
鈴木二郎
田中栄吉
木村匠



SQL実行例の説明(3)

・システム日付に10日を加算した日付データを取得します。

・数値データは日数として扱われるため月単位の足し算を行う場合には月の日数を計算する必要があります。


-- Oracle/
SELECT CURRENT_DATE, CURRENT_DATE + 10 FROM DUAL;

-- SQL Server/
SELECT GETDATE(), GETDATE() + 10;


SQL実行の結果(3-1)

Oracle/

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

SQL Server/

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



SQL実行例の説明(4)

・システム日付に1カ月を加算した日付データを取得します。

・数値データにはINTERVALの指定、さらに数値と日付タイプを指定する必要があります。

・なお、PostgreSQLでは日付データとして認識させるためDATEを使用するほか、数値と日付タイプは「'(シングルクォーテーション)」で括る必要があります。


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

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


SQL実行の結果(4-1)

MySQL/

NEXT_1MONTH
2006-07-01

PostgreSQL/

NEXT_1MONTH
2006-07-01 00:00:00