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.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
Azure SQL Edge
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
Egy rendezett értékkészlet első értékét adja vissza.
Transact-SQL szintaxis konvenciói
Szintaxis
FIRST_VALUE ( [ scalar_expression ] ) [ IGNORE NULLS | RESPECT NULLS ]
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )
Érvek
scalar_expression
A visszaadandó érték. scalar_expression lehet egy oszlop, alquery vagy más tetszőleges kifejezés, amely egyetlen értéket eredményez. Más elemzési függvények nem engedélyezettek.
[ NULL ÉRTÉKEK FIGYELMEN KÍVÜL HAGYÁSA | RESPECT NULLS ]
A következővonatkozik: SQL Server 2022 (16.x) és újabb verziók, Azure SQL Database, Felügyelt Azure SQL-példány és Azure SQL Edge
IGNORE NULLS – Figyelmen kívül hagyja az adathalmaz null értékeit, amikor az első értéket egy partíción számítja ki.
RESPECT NULLS – Az adathalmaz null értékeinek tiszteletben tartása az első érték partíción történő kiszámításakor.
RESPECT NULLS az alapértelmezett viselkedés, ha nincs megadva NULL ÉRTÉKŰ beállítás.
Az Azure SQL Edge argumentumával kapcsolatos további információkért lásd hiányzó értékekimputálása című témakört.
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )
A partition_by_clause a FROM záradék által létrehozott eredményhalmazt partíciókra osztja, amelyekre a függvényt alkalmazza. Ha nincs megadva, a függvény a lekérdezés eredményhalmazának összes sorát egyetlen csoportként kezeli.
A order_by_clause határozza meg a művelet végrehajtásának logikai sorrendjét. A order_by_clause szükséges.
A rows_range_clause a kezdő- és végpontok megadásával tovább korlátozza a partíció sorait.
További információ: OVER záradék (Transact-SQL).
Visszatérési típusok
Ugyanaz a típus, mint scalar_expression.
Megjegyzések
FIRST_VALUE nemdeterminista. További információ: Determinisztikus és nem determinisztikus függvények.
Példák
Egy. FIRST_VALUE használata lekérdezési eredményhalmazon
Az alábbi példa a FIRST_VALUE használatával adja vissza annak a terméknek a nevét, amely egy adott termékkategóriában a legkevésbé költséges.
USE AdventureWorks2022;
GO
SELECT Name,
ListPrice,
FIRST_VALUE(Name) OVER (
ORDER BY ListPrice ASC
) AS LeastExpensive
FROM Production.Product
WHERE ProductSubcategoryID = 37;
Itt van az eredményhalmaz.
Name ListPrice LeastExpensive
----------------------- --------------------- --------------------
Patch Kit/8 Patches 2.29 Patch Kit/8 Patches
Road Tire Tube 3.99 Patch Kit/8 Patches
Touring Tire Tube 4.99 Patch Kit/8 Patches
Mountain Tire Tube 4.99 Patch Kit/8 Patches
LL Road Tire 21.49 Patch Kit/8 Patches
ML Road Tire 24.99 Patch Kit/8 Patches
LL Mountain Tire 24.99 Patch Kit/8 Patches
Touring Tire 28.99 Patch Kit/8 Patches
ML Mountain Tire 29.99 Patch Kit/8 Patches
HL Road Tire 32.60 Patch Kit/8 Patches
HL Mountain Tire 35.00 Patch Kit/8 Patches
B. FIRST_VALUE használata partíciókon
Az alábbi példa a FIRST_VALUE használatával adja vissza a legkevesebb szabadságidővel rendelkező alkalmazottat az azonos beosztású többi alkalmazotthoz képest. A PARTITION BY záradék feladatcím alapján particionálja az alkalmazottakat, és a FIRST_VALUE függvényt egymástól függetlenül alkalmazza a rendszer az egyes partíciókra. A ORDER BY záradékban megadott OVER záradék határozza meg a FIRST_VALUE függvény alkalmazásának logikai sorrendjét az egyes partíciók soraiban. A ROWS UNBOUNDED PRECEDING záradék meghatározza, hogy az ablak kezdőpontja az egyes partíciók első sora.
USE AdventureWorks2022;
GO
SELECT JobTitle,
LastName,
VacationHours,
FIRST_VALUE(LastName) OVER (
PARTITION BY JobTitle ORDER BY VacationHours ASC ROWS UNBOUNDED PRECEDING
) AS FewestVacationHours
FROM HumanResources.Employee AS e
INNER JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID
ORDER BY JobTitle;
Itt van az eredményhalmaz.
JobTitle LastName VacationHours FewestVacationHours
----------------------------------- ------------------------- ------------- -------------------
Accountant Moreland 58 Moreland
Accountant Seamans 59 Moreland
Accounts Manager Liu 57 Liu
Accounts Payable Specialist Tomic 63 Tomic
Accounts Payable Specialist Sheperdigian 64 Tomic
Accounts Receivable Specialist Poe 60 Poe
Accounts Receivable Specialist Spoon 61 Poe
Accounts Receivable Specialist Walton 62 Poe