|
|
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
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 11 月前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |