Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
 Azure SQL Edge 
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
Retourneert de eerste waarde in een geordende set waarden.
              
              
              Transact-SQL syntaxisconventies
Syntaxis
FIRST_VALUE ( [ scalar_expression ] ) [ IGNORE NULLS | RESPECT NULLS ]
    OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )
Argumenten
scalar_expression
De waarde die moet worden geretourneerd. scalar_expression kan een kolom, subquery of andere willekeurige expressie zijn die resulteert in één waarde. Andere analytische functies zijn niet toegestaan.
[ NULL-WAARDEN NEGEREN | RESPECT NULLS ]
Van toepassing op: SQL Server 2022 (16.x) en latere versies, Azure SQL Database, Azure SQL Managed Instance en Azure SQL Edge
              IGNORE NULLS: null-waarden in de gegevensset negeren bij het berekenen van de eerste waarde boven een partitie.
              RESPECT NULLS: respecteer null-waarden in de gegevensset bij het berekenen van de eerste waarde boven een partitie. 
              RESPECT NULLS is het standaardgedrag als er geen NULLS-optie is opgegeven.
Zie Ontbrekende waardeninvoeren voor meer informatie over dit argument in Azure SQL Edge.
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )
De partition_by_clause verdeelt de resultatenset die door de FROM-component wordt geproduceerd in partities waarop de functie wordt toegepast. Als deze niet is opgegeven, behandelt de functie alle rijen van de queryresultatenset als één groep.
De order_by_clause bepaalt de logische volgorde waarin de bewerking wordt uitgevoerd. De order_by_clause is vereist.
De rows_range_clause beperkt de rijen binnen de partitie verder door begin- en eindpunten op te geven.
Zie OVER-component (Transact-SQL) voor meer informatie.
Retourtypen
Hetzelfde type als scalar_expression.
Opmerkingen
              FIRST_VALUE is niet-deterministisch. Zie Deterministische en niet-deterministische functiesvoor meer informatie.
Voorbeelden
Een. FIRST_VALUE gebruiken voor een queryresultatenset
In het volgende voorbeeld wordt FIRST_VALUE gebruikt om de naam te retourneren van het product dat de goedkoopste is in een bepaalde productcategorie.
USE AdventureWorks2022;
GO
SELECT Name,
    ListPrice,
    FIRST_VALUE(Name) OVER (
        ORDER BY ListPrice ASC
    ) AS LeastExpensive
FROM Production.Product
WHERE ProductSubcategoryID = 37;
Dit is de resultatenset.
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 over partities gebruiken
In het volgende voorbeeld wordt FIRST_VALUE gebruikt om de werknemer te retourneren met het minste aantal vakantieuren in vergelijking met andere werknemers met dezelfde functie. De PARTITION BY component partitioneert de werknemers op functie en de FIRST_VALUE functie wordt onafhankelijk van elke partitie toegepast. De ORDER BY component die is opgegeven in de OVER component bepaalt de logische volgorde waarin de FIRST_VALUE functie wordt toegepast op de rijen in elke partitie. De ROWS UNBOUNDED PRECEDING component geeft het beginpunt van het venster is de eerste rij van elke partitie.
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;
Dit is de resultatenset.
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