|
|
1
4
更新为更好:)
|
|
|
2
3
我对其他答案中提供的所有解决方案做了一些测试,我原来的“hairy recursive cte”选项,为了完整起见,我使用了一种简单的基于光标的方法。令我大吃一惊的是,游标选项在我的所有测试(1K行、10K行、50K行、500K行)中都以明显的优势发挥了最好的性能。
以下是10K记录每次进近的平均次数:
这是我基于光标的解决方案:
谁会猜到呢?也许诅咒并不总是邪恶的。 一句警告:为了避免您试图将更新替换为“where current of mycursor”语法,它的执行速度比使用当前版本的where子句慢得多,尽管仍然比大多数其他方法快。 |
|
|
3
1
最快的方法是 Quirky Update . 这取决于你是否陷入“微软没有明确说它有效,所以我会避免”IT阵营或不… 否则,您将处于毛茸茸的递归cte(正如您已经发现的那样)或三角形连接(这可能成为大型数据集上的一个噩梦)领域。 |
|
|
4
1
也许这三种解决方案中的一种会有所帮助,因为这是一种“总运行”问题: http://www.sqlteam.com/article/calculating-running-totals |
|
|
5
1
使用交叉应用的SQL 2008(运行总数)
|
|
|
6
0
我选择通过创建函数来解决这两个问题,一个是获取第一页,另一个是获取最后一页。下面是可以工作的函数和查询。
最后是询问。
|
|
|
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 2 年前 |
|
|
Nick Fleetwood · 调度语法的LINQ查询 3 年前 |
|
|
Mateen Bagheri · 选择表的计数并选择其自身 3 年前 |
|
Java · 使用交叉应用同时显示两列 3 年前 |