SqlServer2012中First_Value函数简单分析,firstvalue函数

网络整理 - 08-16

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

SqlServer2012中First_Value函数简单分析,firstvalue函数

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

以ID正序取

SqlServer2012中First_Value函数简单分析,firstvalue函数

以ID倒序取

SqlServer2012中First_Value函数简单分析,firstvalue函数

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

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

SqlServer2012中First_Value函数简单分析,firstvalue函数

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

SqlServer2012中First_Value函数简单分析,firstvalue函数

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


Sql Server 不支持 first()函数?

select top 1 字段3 ,(select sum(字段4) from 表) as 别名 from 表

不知道是不是想要这种效果.你试试看吧.
你加我QQ说吧 我都弄晕了
上面这个语句就能把两个字段合并显示
294369120
加了详细说一下吧
 

100分SQL server 中系统函数精细讲解

我也是学习sqlserver的!

一些基本的函数也知道了!

你有问题就直接问我吧!

我基本上天天在的!

所有的表的名都叫:test

举一些例子给你

select max(字段) from test
//获取字段最大的一条记录!

select min(字段) from test
//获取字段最小的一条记录!

select left(字段,6) from test
//获取字段的前六个字符!

select right(字段,6) from test
//获取字段的后六个字符!

select substring(字段,1,5) from test
//获取字段的第一个到第五个的字符!

abs/avg/len/reverse/

太多了!