首页 > 解决方案 > SQL Server 查询以获取前置位置 No

问题描述

我正在尝试编写 SQL 查询,它将在新列中显示一个“预定位编号”,其中显示的值基于前一个位置编号列行上的值。

查看图片了解更多详情

我将不胜感激任何帮助。谢谢你。

标签: sqlsql-server

解决方案


您似乎正在寻找 LAG()。为此,您需要一个可用于对数据进行排序的列,以便您的 RDBMS 可以评估哪条记录是当前记录的先前记录。假设这个列被称为 id,那么:

SELECT
    id,
    position_nr,
    LAG(position_nr) OVER(ORDER BY id) pre_position_nr
FROM mytable

推荐阅读