- (減算) (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウスMicrosoft Fabric の SQL データベース

2 つの値で減算を行います (算術減算演算子)。 日付から日数を減算することもできます。

Transact-SQL 構文表記規則

Syntax

expression - expression

Arguments

expression

ビット データ型を除く、数値データ型カテゴリのいずれかのデータ型の有効な式。 日付、時刻、datetime2、または datetimeoffset データ型では使用できません。

戻り値の型

優先順位が高い引数のデータ型を返します。 詳細については、「 Data 型の優先順位」を参照してください。

Examples

この記事のコードサンプルは、Azure Data SQL Samples Repository GitHub repositoryからダウンロードできるAdventureWorks2025またはAdventureWorksDW2025サンプルデータベースを使用しています。

A. SELECT ステートメントで減算を使用する

次の例では、税率が最も高い州または都道府県と、税率が最も低い州または都道府県の税率の差を計算します。

適用対象: SQL Server と SQL Database。

SELECT MAX(TaxRate) - MIN(TaxRate) AS 'Tax Rate Difference'
FROM Sales.SalesTaxRate
WHERE StateProvinceID IS NOT NULL;
GO

実行順序は、かっこを使用して変更できます。 かっこ内の計算は、先に評価されます。 かっこが入れ子にされている場合は、最も深く入れ子にされた計算が優先されます。

B. 日付の減算を使用する

次の例では、 datetime 日付から数日を減算します。

適用対象: SQL Server および SQL Database。

DECLARE @altstartdate DATETIME;
SET @altstartdate = CONVERT(DATETIME, 'January 10, 1900 3:00 AM', 101);
SELECT @altstartdate - 1.5 AS 'Subtract Date';

結果セットは次のとおりです。

Subtract Date
-----------------------
1900-01-08 15:00:00.000

例: Azure Synapse Analytics

C. SELECT ステートメントで減算を使用する

次の例では、基本給が最高の従業員と最低税率の従業員の間の基本給の差異を dimEmployee テーブルから計算します。

SELECT MAX(BaseRate) - MIN(BaseRate) AS BaseRateDifference
FROM DimEmployee;