Megosztás a következőn keresztül:


SELECT – HAVING záradék (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy csoport vagy összesítés keresési feltételét adja meg. Csak az SELECT utasítással használhatóHAVING. Általában egy GROUP BY záradékot használHAVING. Ha nem használja GROUP BY, van egy implicit, összesített csoport.

Transact-SQL szintaxis konvenciók

Syntax

[ HAVING <search condition> ]

Arguments

<search_condition>

Egy vagy több predikátumot ad meg a csoportoknak és összesítéseknek, amelyeket a csoportoknak teljesíteniük kell. A keresési feltételekről és predikátumokról további információt a Keresési feltétel című témakörben talál.

A záradékbanHAVING nem használható a szöveg, a kép és az ntext adattípus.

Examples

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. Az egyes értékesítési rendelések összegének lekérése

Az alábbi példa egy záradékot HAVING használ az egyes SalesOrderID táblák összegének lekérésére a SalesOrderDetail fenti $100000.00táblázatból.

USE AdventureWorks2025;
GO

SELECT SalesOrderID,
       SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVING SUM(LineTotal) > 100000.00
ORDER BY SalesOrderID;

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

B. Adott értéket meghaladó teljes értékesítés lekérése

Az alábbi példa egy záradékot HAVING használ az egyes SalesAmount tábláknál nagyobb 80000 összeg OrderDateKey lekéréséreFactInternetSales.

-- Uses AdventureWorks
SELECT OrderDateKey,
       SUM(SalesAmount) AS TotalSales
FROM FactInternetSales
GROUP BY OrderDateKey
HAVING SUM(SalesAmount) > 80000
ORDER BY OrderDateKey;