Sdílet prostřednictvím


- (odčítání) (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Odečte dvě čísla (aritmetický operátor odčítání). Může také odečíst číslo ve dnech od data.

Transact-SQL konvence syntaxe

Syntax

expression - expression

Arguments

expression

Libovolný platný výraz libovolného z datových typů číselné kategorie datového typu s výjimkou datového typu bitu . Nelze použít s datovými typy date, time, datetime2 nebo datetimeoffset .

Návratové typy

Vrátí datový typ argumentu s vyšší prioritou. Další informace naleznete v tématu Priorita datového typu.

Examples

Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .

A. Použití odčítání v příkazu SELECT

Následující příklad vypočítá rozdíl v sazbě daně mezi státem nebo provincií s nejvyšší sazbou daně a státem nebo provincií s nejnižší sazbou daně.

Platí pro: SQL Server a SQL Database.

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

Pořadí provádění můžete změnit pomocí závorek. Výpočty uvnitř závorek se vyhodnocují jako první. Pokud jsou závorky vnořené, má nejrozsáhlejší výpočet prioritu.

B. Odčítání data použití

Následující příklad odečte několik dní od data data a času .

Platí pro: SQL Server a SQL Database.

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

Tady je soubor výsledků.

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

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

C. Použití odčítání v příkazu SELECT

Následující příklad vypočítá rozdíl v základní sazbě mezi zaměstnancem s nejvyšší základní sazbou a zaměstnancem s nejnižší sazbou daně z dimEmployee tabulky.

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