可用于sqlserver 2012以后的版本,主要是查询当前数据的前几条数据或后几条数据的值

例:

LAG函数 往上取,取前几条的数据

WITH T AS
(
SELECT 1 ID,10 NUM
UNION ALL
SELECT 1,20
UNION ALL
SELECT 1,30
UNION ALL
SELECT 2,40
UNION ALL
SELECT 2,50
UNION ALL
SELECT 2,60
)SELECT
ID,
NUM,
LAG(NUM) OVER (PARTITION BY ID ORDER BY NUM) AS OneArgs,--根据id分组num排序,取上一条的记录
LAG(NUM,1) OVER (PARTITION BY ID ORDER BY NUM) AS TowArgs,--根据id分组num排序,取上一条的记录
LAG(NUM,2,0) OVER (PARTITION BY ID ORDER BY NUM) AS ThressArgs--根据id分组num排序,取上两条的记录,并且如果为空则默认为0
FROM T--查询结果为
ID    NUM    OneArgs    TowArgs    ThressArgs
1     10      null        null          0
1     20      10          10            0
1     30      20          20            10
2     40      null        null          0
2     50      40          40            0
2     60      50          50            40

LEAD函数 往后取,取后几条的数据

WITH T AS
(
SELECT 1 ID,10 NUM
UNION ALL
SELECT 1,20
UNION ALL
SELECT 1,30
UNION ALL
SELECT 2,40
UNION ALL
SELECT 2,50
UNION ALL
SELECT 2,60
)SELECT ID,NUM,
LEAD(NUM) OVER (PARTITION BY ID ORDER BY NUM) AS OneArgs,--根据id分组num排序,取下一条的记录
LEAD(NUM,1) OVER (PARTITION BY ID ORDER BY NUM) AS TowArgs,--根据id分组num排序,取下一条的记录
LEAD(NUM,2,0) OVER (PARTITION BY ID ORDER BY NUM) AS ThressArgs--根据id分组num排序,取下两条的记录,并且如果为空则显示为0
FROM T------结果-------
ID    NUM    OneArgs    TowArgs    ThressArgs
1      10      20         20           30
1      20      30         30           0
1      30      null       null         0
2      40      50         50           60
2      50      60         60           0
2      60      null       null         0

sqlserver LEAD和LAG函数(学习记录)相关推荐

  1. Oracle 利用lead、lag函数查询已有记录的下一条、上一条记录

    (一)函数介绍(lead和lag函数类似) 语法结构: lead(value_expr [,offset][,default]) over([query_partition_clause] order ...

  2. SQL SERVER中LEAD和LAG函数

    SQL SERVER中LEAD和LAG函数 LEAD和LAG函数 LEAD 访问相同结果集的后续行中的数据,而不使用 SQL Server 2012 中的自联接. LEAD 以当前行之后的给定物理偏移 ...

  3. 机器学习实战中的函数学习记录

    title: 机器学习实战中的函数学习记录 date: 2020-05-01 09:20:50 tags: [python函数] categories: 机器学习实战 更多内容请关注我的博客 记录机器 ...

  4. SQL SERVER LEAD和LAG函数

    sql server中LEAD和LAG函数可直接获取当前数据上下相邻多少行数据.见以下案例: --测试数据 if not object_id(N'Tempdb..#T') is null drop t ...

  5. Python+Django+LeanCloud+腾讯云函数学习记录(第一周学习记录)

    第一周学习记录 开始从事微信小程序云开发和后台搭建的实习工作,这半年来会一直定期更新学习记录 1.微信爬虫模块 1.Itchat包 ​ 使用itchat包的初衷是为了通过该包的login端口直接通过扫 ...

  6. 【无标题】lead与lag函数

    lag与lead函数是跟偏移量相关的两个分析函数 通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤 该操作可代替表 ...

  7. oracle lag group,oracle中lead和lag函数

    这两个函数,是偏移量函数,其用途是:可以查出同一字段下一个值或上一个值.lead(col_name,num,flag) col_name是列名:num是取向下第几个值:flag是一个标志,也就是如果向 ...

  8. SQL Server中的LAG函数与LEAD函数介绍

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 SQL Server从2012版本开始,引入了LEAD和LAG函数,这两个函数可以把之 ...

  9. oracle 按照lead,Oracle之Lead和Lag偏移量函数使用详解

    Oracle有两个函数:LEAD和LAG,这两个函数都是用来计算偏移量的分析函数,这两个函数的用法相同. Oracle官方文档解释是: LEADis an analytic function. It ...

最新文章

  1. 移动端网页乱象怎么破?搜狗搜索正在为行业建言
  2. FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库
  3. 使用DBUtils编写通用的DAO
  4. VTK:反射用法实战
  5. nssl1142,jzoj3487-剑与魔法【堆,贪心】
  6. python数据分析方法和命令_《利用Python进行数据分析》 —— (1)
  7. java窗口向mysql加信息_Java中如何实现向DBC方式向表中添加数据
  8. Swift 面向协议编程的那些事
  9. 在Windows系统下安装RabbitMQ
  10. java匿名类_Java匿名类
  11. libjvm ThreadState Transition transition_from_native
  12. live2dmesh渲染优先级_如何渲染Live2D模型
  13. 如何查看局域网络计算机资料,怎么查看局域网内所有电脑的信息
  14. linux mailx 发送多个附件,CentOS安装mailx用命令以SMTP方式发送带附件邮件可用SSL
  15. Java计算两点间的距离
  16. Java程序员学习必看 干货
  17. android 颜色渐变扩散,Android 颜色渐变(gradient)的实现总结
  18. 对论文中模型进行编程实现时的注意要求和总结
  19. 【毕业设计】基于 stm32 的病房呼叫系统 - 物联网 嵌入式 单片机
  20. Vue基础学习之混入Mixin

热门文章

  1. 亓琳〆Lutte╰→羋孖ゝ
  2. 通俗易懂的拜耳阵列(拜耳马赛克)简介
  3. 卸载flannel安装kube-router网络插件
  4. 基于STM32单片机驱动HX711的代码分享,仅供参考
  5. form表单提交数据(包括文字和图片)实例
  6. 腾讯音乐php应用工程师面试,腾讯音乐面试准备
  7. linux版本下的超简单的生信分析平台介绍
  8. flink1.15源码笔记(run模式简单带过,主要看run-application)
  9. sql数据库中修改列名的方法
  10. 学计算机应该从那方面入手,想学电脑应该从哪入手 电脑并不神秘先消除紧张感...