[MSSQL2012]First_Value函数

First_Value返回结果集中某列第一条数据的值,跟TOP 1效果同样,比较简单的一个函数app

先贴测试用代码函数

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 @TestData3d

SNAGHTMLee28578

 

下边使用FIRST_VALUE函数,建立一列新列,返回结果集中第一行的LastName值,这个所谓的第一行受OVER里的ORDER BY影响,看图和代码:orm

以ID正序取blog

SNAGHTMLee4f242

 

以ID倒序取get

SNAGHTMLee5cf92

 

若是SQL脚本中使用了PARTITION分区函数,则FIRST_VALUE返回每一个分区内的首条数据值,看演示it

这里以Department分区,则整个数据集被分红了两部分:Information Services和Document Control两块,这时FIRST_VALUE分别返回两块分区内的首条数据值,一样的受ORDER BY关键字的影响,io

SNAGHTMLee90c10

 

再看一个受ORDER BY 影响的例子ast

SNAGHTMLee9b7c1

 

与FIRST_VALUE函数同时出现的还有一个,SECOND_VALUE?NO,没有这个函数啊,可是有一LAST_VALUE,怎么函数怎么使用,不打算再单独起一篇文章了,LAST_VALUE嗯

相关文章
相关标签/搜索