- (Odejmowanie) (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint analityki SQL w Microsoft FabricMagazyn w Microsoft FabricBaza danych SQL w Microsoft Fabric

Odejmuje dwie liczby (operator odejmowania arytmetycznego). Może również odjąć liczbę w dniach od daty.

Transact-SQL konwencje składni

Syntax

expression - expression

Arguments

expression

Dowolne prawidłowe wyrażenie dowolnego z typów danych kategorii typu danych liczbowych, z wyjątkiem typu danych bitowych . Nie można używać z typami danych date, time, datetime2 lubdatetimeoffset .

Typy zwracane

Zwraca typ danych argumentu o wyższym pierwszeństwie. Aby uzyskać więcej informacji, zobacz Pierwszeństwo typu danych.

Examples

Przykłady kodu opisane w tym artykule korzystają z przykładowej bazy AdventureWorks2025 ORAdventureWorksDW2025, którą można pobrać z repozytorium Azure Data SQL Samples Repository GitHub.

A. Używanie odejmowania w instrukcji SELECT

Poniższy przykład oblicza różnicę w stawce podatkowej między stanem lub prowincją z najwyższą stawką podatkową, a stanem lub prowincją o najniższej stawce podatkowej.

Dotyczy: SQL Server i SQL Database.

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

Kolejność wykonywania można zmienić przy użyciu nawiasów. Obliczenia wewnątrz nawiasów są oceniane jako pierwsze. Jeśli nawiasy są zagnieżdżone, pierwszeństwo ma najbardziej zagnieżdżone obliczenie.

B. Używanie odejmowania daty

Poniższy przykład odejmuje kilka dni od daty daty/godziny .

Dotyczy: SQL Server i SQL Database.

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

Oto zestaw wyników.

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

Przykłady: Azure Synapse Analytics

C. Używanie odejmowania w instrukcji SELECT

Poniższy przykład oblicza różnicę w stawce bazowej między pracownikiem z najwyższą stawką bazową a pracownikiem o najniższej stawce podatkowej dimEmployee z tabeli.

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