SQL SERVER 2012 T-SQL新增幾個聚合函數: FIRST_VALUE LAST_VALUE LEAD LAG,今天我們首先來簡單分析下SqlServer2012中First_Value函數,希望對大家有所幫助。
First_Value返回結果集中某列第一條數據的值,跟TOP 1效果一樣,比較簡單的一個函數
先貼測試用代碼
DECLARE @TestData TABLE
(ID INT IDENTITY(1,1),
Department VARCHAR(20),
LastName VARCHAR(20),
Rate FLOAT)
INSERT INTO @TestData(Department,LastName,Rate)
SELECT 'Document Control','Arifin',17.7885 UNION ALL
SELECT 'Document Control','Norred',16.8269 UNION ALL
SELECT 'Document Control','Kharatishvili',16.8269 UNION ALL
SELECT 'Information Services','Chai',10.25 UNION ALL
SELECT 'Information Services','Berge',10.25 UNION ALL
SELECT 'Information Services','Trenary',50.4808 UNION ALL
SELECT 'Information Services','Conroy',39.6635 UNION ALL
SELECT 'Information Services','Ajenstat',38.4615 UNION ALL
SELECT 'Information Services','Wilson',38.4615 UNION ALL
SELECT 'Information Services','Connelly',32.4519 UNION ALL
SELECT 'Information Services','Meyyappan',32.4519
SELECT * FROM @TestData
下邊使用FIRST_VALUE函數,創建一列新列,返回結果集中第一行的LastName值,這個所謂的第一行受OVER裡的ORDER BY影響,看圖和代碼:
以ID正序取
以ID倒序取
如果SQL腳本中使用了PARTITION分區函數,則FIRST_VALUE返回每個分區內的首條數據值,看演示
這裡以Department分區,則整個數據集被分成了兩部分:Information Services和Document Control兩塊,這時FIRST_VALUE分別返回兩塊分區內的首條數據值,同樣的受ORDER BY關鍵字的影響,
再看一個受ORDER BY 影響的例子
以上就是精品為大家提供的關於SqlServer2012中First_Value函數的簡單分析,希望能夠幫助到大家。