码迷,mamicode.com
首页 > 数据库 > 详细

[MSSQL2012]First_Value函数

时间:2014-08-25 13:23:34      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   使用   io   for   数据   ar   2014   

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

bubuko.com,布布扣

 

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

以ID正序取

bubuko.com,布布扣

 

以ID倒序取

bubuko.com,布布扣

 

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

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

bubuko.com,布布扣

 

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

bubuko.com,布布扣

 

The End

[MSSQL2012]First_Value函数

标签:style   blog   http   使用   io   for   数据   ar   2014   

原文地址:http://www.cnblogs.com/kkun/p/3934687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!