# FIRST_VALUE (Transact-SQL)FIRST_VALUE (Transact-SQL)

## 語法Syntax

``````FIRST_VALUE ( [scalar_expression ] )
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )

``````

## 引數Arguments

scalar_expressionscalar_expression

OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )
partition_by_clause 會將 FROM 子句產生的結果集分割成函數所要套用的分割區。partition_by_clause divides the result set produced by the FROM clause into partitions to which the function is applied. 如未指定，此函數會將查詢結果集的所有資料列視為單一群組。If not specified, the function treats all rows of the query result set as a single group. order_by_clause 可決定執行作業的邏輯順序。order_by_clause determines the logical order in which the operation is performed. order_by_clause 為必要項目。order_by_clause is required. rows_range_clause 會指定起始點及結束點，以進一步限制分割區中的資料列數。rows_range_clause further limits the rows within the partition by specifying start and end points. 如需詳細資訊，請參閱 OVER 子句 (Transact-SQL)For more information, see OVER Clause (Transact-SQL).

## 一般備註General Remarks

FIRST_VALUE 不具決定性。FIRST_VALUE is nondeterministic. 如需詳細資訊，請參閱 決定性與非決定性函數For more information, see Deterministic and Nondeterministic Functions.

## 範例Examples

### A.A.針對查詢結果集使用 FIRST_VALUEUsing FIRST_VALUE over a query result set

``````USE AdventureWorks2012;
GO
SELECT Name, ListPrice,
FIRST_VALUE(Name) OVER (ORDER BY ListPrice ASC) AS LeastExpensive
FROM Production.Product
WHERE ProductSubcategoryID = 37;
``````

``````
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.B.針對整個分割區使用 FIRST_VALUEUsing FIRST_VALUE over partitions

``````USE AdventureWorks2012;
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
ORDER BY JobTitle;
``````

``````
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
``````