【发布时间】:2016-04-17 05:51:13
【问题描述】:
如何批量处理表的记录并创建范围,即获取每个批次的最小值和最大值?
表有 1500 万条记录,表上的唯一键(此处为 personID)不是连续的。
输入参数:
@TableName NVARCHAR(250) =’Person’
,@BatchColumn NVARCHAR(250) =’Personid’
,@BatchSize INT = 5
示例表:
personid Name EmailAddress
1 1 Rob
2 3 Kate
3 5 Nate
4 8 Mary
5 9 Rama
6 11 Dan
7 15 Tom
8 17 Star
9 20 Berry
10 23 King
. .
. .
. .
96 139
97 145
98 148
99 149
100 150
101 153 Sony
102 155 Duff
预期输出:batchsize=5,每条记录每 5 条记录有最小值和最大值,最后一个桶有剩余记录的最小值和最大值。
Batch No. Min Value Max Value
1 1 9
2 11 23
. . .
. . .
. . .
20 139 150
21 153 155
【问题讨论】:
标签: sql sql-server tsql range