Dela via


- (Subtraktion) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Subtraherar två tal (en aritmisk subtraktionsoperator). Kan också subtrahera ett tal, i dagar, från ett datum.

Transact-SQL syntaxkonventioner

Syntax

expression - expression

Arguments

expression

Ett giltigt uttryck för någon av datatyperna i kategorin numerisk datatyp, förutom bitdatatypen . Det går inte att använda datatyperna date, time, datetime2 eller datetimeoffset .

Return types

Returnerar datatypen för argumentet med högre prioritet. Mer information finns i Datatypspriorence.

Examples

Kodexemplen i den här artikeln använder AdventureWorks2022- eller AdventureWorksDW2022-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.

A. Använda subtraktion i en SELECT-instruktion

I följande exempel beräknas skillnaden i skattesats mellan den stat eller provins som har den högsta skattesatsen och den stat eller provins som har den lägsta skattesatsen.

Gäller för: SQL Server och SQL Database.

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

Du kan ändra körningsordningen med parenteser. Beräkningar inom parenteser utvärderas först. Om parenteser är kapslade har den mest kapslade beräkningen företräde.

B. Använda datumundertraktion

I följande exempel subtraheras flera dagar från ett datetime-datum .

Gäller för: SQL Server och SQL Database.

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

Här är resultatet.

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

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

C. Använda subtraktion i en SELECT-instruktion

I följande exempel beräknas skillnaden i en basränta mellan medarbetaren med den högsta basräntan och medarbetaren med den lägsta skattesatsen från dimEmployee tabellen.

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