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 影响的例子

与FIRST_VALUE函数同时出现的还有一个,SECOND_VALUE?NO,没有这个函数啊,但是有一LAST_VALUE,怎么函数怎么使用,不打算再单独起一篇文章了,LAST_VALUE嗯
相关文章
Sql server中内部函数fn_PhysLocFormatter存在解析错误详解
这篇文章主要给大家介绍了关于Sql server中内部函数fn_PhysLocFormatter存在解析错误的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-09-09
SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案
本文主要讲述了笔者在执行sql语句的过程中,遇到提示“数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。”的解决过程,希望对大家有所帮助2014-08-08
SSB(SQLservice Service Broker) 入门实例介绍
前两天用了 MSsql里的 SSB委托机制,做了一个消息分发的小功能,在这里简单跟大家分享一下方法跟实例2013-04-04
Activiti-Explorer使用sql server数据库实现方法
本文主要介绍Activiti-Explorer使用sql server数据库,这里整理了详细的资料来说明Activiti-Explorer使用SQL Server的实例,有兴趣的小伙伴可以参考下2016-08-08


最新评论