1
49
SQL没有内置的顺序概念,因此您需要按某个列排序,这样做才有意义。像这样:
如果您知道如何排序,但不知道如何获得给定当前值的前一个值(例如,您希望按字母顺序排序),那么我不知道在标准SQL中如何做到这一点,但大多数SQL实现都会有扩展。 下面是一种SQL Server的方法,如果可以对行进行排序,使每一行都是不同的,则该方法可以工作:
如果需要断开连接,可以根据需要向ORDERBY添加尽可能多的列。 |
2
35
|
3
26
|
4
25
Oracle、PostgreSQL、SQL Server和更多的RDBMS引擎都具有称为
在2012年之前的SQL Server中,您需要执行以下操作:
在哪里
在上有索引
|
5
8
将表左联接到其自身,并计算出联接条件,以便表的联接版本中匹配的行是前一行,用于您的特定“上一行”定义。 更新:首先,我想您应该保留所有行,对于没有前一行的条件为空。再次阅读它,您只需要剔除行,所以您应该是一个内部联接而不是一个左联接。 更新: 较新版本的SQL Server还具有延迟和超前窗口功能,也可以用于此功能。 |
6
2
所选答案仅在序列中没有间隙时有效。但是,如果您使用的是自动生成的ID,那么由于回滚的插入,序列中可能存在间隙。 如果有差距,这个方法应该有效
|
7
2
|
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |