SQL更新记录,每次从1开始递增值
我使用单个插入语句将批量记录添加到表中。我希望为每个新批次分配递增的数字,但每次都从 1 开始。
因此,如果我有
Batch Name IncementingValue
1 Joe 1
1 Pete 2
1 Andy 3
2 Sue 1
2 Mike 2
2 Steve 3
,然后添加两条记录(使用单个插入语句):
3 Dave
3 Paul
如何针对该表运行更新语句,以便将 Dave 设置为 1,将 Paul 设置为 2。我不想使用光标。
I am adding batches of records to a table using a single insert statement. I want each new batch to be allocated incrementing numbers, but starting from 1 each time.
So, if I have
Batch Name IncementingValue
1 Joe 1
1 Pete 2
1 Andy 3
2 Sue 1
2 Mike 2
2 Steve 3
and I then add two records (using a single insert statement) :
3 Dave
3 Paul
How can I run an update statement against this table so that Dave will be set to 1 and Paul to 2. I don't want to use a cursor.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
排名函数
ROW_NUMBER
应该可以满足您的需要。您没有提到有关如何分配序列号的任何具体规则,因此我在这里使用名称完成了它:The ranking function
ROW_NUMBER
should do what you need. You didn't mention any specific rules about how the sequence number should be allocated, so I've done it here using the name:我需要用日期和格式化数字来完成类似的事情。
希望有人会觉得这个例子有用。
I needed to accomplish something similar with dates and formatted numbers.
Hopefully, someone will find this example useful.