Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Azure SQL Edge
SQL analytics endpoint in Microsoft Fabric
Warehouse SQL
databasein Microsoft Fabric
Sıralı bir değer kümesindeki ilk değeri döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
FIRST_VALUE ( [ scalar_expression ] ) [ IGNORE NULLS | RESPECT NULLS ]
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )
Bağımsız değişken
scalar_expression
Döndürülecek değer. scalar_expression tek bir değerle sonuçlanacak bir sütun, alt sorgu veya başka bir rastgele ifade olabilir. Diğer analiz işlevlerine izin verilmez.
[ NULL'LARı YOKSAY | RESPECT NULLS ]
için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümler, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure SQL Edge
IGNORE NULLS - Bir bölüm üzerindeki ilk değeri hesaplarken veri kümesindeki null değerleri yoksayın.
RESPECT NULLS : Bir bölüm üzerinde ilk değeri hesaplama sırasında veri kümesindeki null değerlere dikkat edin.
RESPECT NULLS, NULLS seçeneği belirtilmezse varsayılan davranıştır.
Azure SQL Edge'de bu bağımsız değişken hakkında daha fazla bilgi için bkz. Eksik değerleri.
OVER ( [ partition_by_clause] order_by_clause [ rows_range_clause ] )
partition_by_clause FROM yan tümcesi tarafından üretilen sonuç kümesini işlevin uygulandığı bölümlere böler. Belirtilmezse, işlev sorgu sonuç kümesinin tüm satırlarını tek bir grup olarak ele alır.
order_by_clause, işlemin gerçekleştirildiği mantıksal sırayı belirler. order_by_clause gereklidir.
rows_range_clause, başlangıç ve bitiş noktalarını belirterek bölüm içindeki satırları daha da sınırlar.
Daha fazla bilgi için bkz. OVER Yan Tümcesi (Transact-SQL).
Dönüş türleri
scalar_expressionile aynı tür.
Açıklamalar
FIRST_VALUE belirsiz değildir. Daha fazla bilgi için bkz. Deterministic ve nondeterministic functions.
Örnekler
A. Sorgu sonuç kümesi üzerinde FIRST_VALUE kullanma
Aşağıdaki örnek, belirli bir ürün kategorisindeki en düşük maliyetli ürünün adını döndürmek için FIRST_VALUE kullanır.
USE AdventureWorks2022;
GO
SELECT Name,
ListPrice,
FIRST_VALUE(Name) OVER (
ORDER BY ListPrice ASC
) AS LeastExpensive
FROM Production.Product
WHERE ProductSubcategoryID = 37;
Sonuç kümesi aşağıdadır.
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ölümler üzerinde FIRST_VALUE kullanma
Aşağıdaki örnekte, aynı iş unvanına sahip diğer çalışanlara kıyasla en az sayıda tatil saati olan çalışanı döndürmek için FIRST_VALUE kullanılmaktadır.
PARTITION BY yan tümcesi çalışanları iş unvanına göre bölümler ve FIRST_VALUE işlevi her bölüme bağımsız olarak uygulanır.
ORDER BY yan tümcesinde belirtilen OVER yan tümcesi, FIRST_VALUE işlevinin her bölümdeki satırlara uygulandığı mantıksal sırayı belirler.
ROWS UNBOUNDED PRECEDING yan tümcesi, pencerenin başlangıç noktasının her bölümün ilk satırı olduğunu belirtir.
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;
Sonuç kümesi aşağıdadır.
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