Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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;