zoukankan      html  css  js  c++  java
  • [MSSQL2012]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

    SNAGHTMLee28578

     

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

    以ID正序取

    SNAGHTMLee4f242

     

    以ID倒序取

    SNAGHTMLee5cf92

     

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

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

    SNAGHTMLee90c10

     

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

    SNAGHTMLee9b7c1

     

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

  • 相关阅读:
    小刘的PHP面试碰到的坑
    小刘的PHP面试碰到的坑
    小刘的项目经验
    04 mysql 深入浅出索引(上)
    CGI,FastCGI和PHP-FPM之间的关系和区别。
    mysql客户端模拟脏读、幻读和可重复读
    mysql 3 | 事务隔离:为什么你改了我还看不见?
    sa账号无法登陆sqlserver2008
    Java单体应用
    Java单体应用
  • 原文地址:https://www.cnblogs.com/kkun/p/3934687.html
Copyright © 2011-2022 走看看