TSQL-为重复记录生成序列号
使用 SQL Server 2000,考虑一个包含超过 400,000 条记录的源表。
任务是选择每个 regno
条目,并带有递增的动态 rowid
或序列号(对于那些具有重复项或多个条目的条目)。对于源表中没有重复条目的情况,rowid
应该简单地为 null
。
以下是所需输出的示例:
regno rowid 100 1 100 2 100 3 200 null 300 4 300 5 400 null 500 null 600 6 600 7
问题: 在 SQL Server 2000 中,什么查询可以使用 TSQL 执行所需的序列递增?
Using SQL Server 2000, consider a source table with more than 400,000 records.
The task is to select each regno
entry with an incrementing on-the-fly rowid
or sequence number for those with duplicates or multiple entries. For those which do NOT have duplicate entries in the source table, the rowid
should simply be null
.
Here's an example of the desired output:
regno rowid 100 1 100 2 100 3 200 null 300 4 300 5 400 null 500 null 600 6 600 7
Question:
What query would do the desired sequence incrementing using TSQL in SQL Server 2000?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果我的评论是正确的(600 应该是 6,7),那么看看这个
If my comment is correct (600 should be 6,7) then have a look at this
提取非唯一记录的查询将是
我对 MSSQL 的了解不够,无法告诉您如何生成递增序列号来更新与查询匹配的记录。
The query to extract the non-unique records would be
I don't know enough about MSSQL to tell you how to generate an incrementing sequence number to update the records that match the query.
没有临时表:
哎呀 - 直到发布此内容后才发现您想在 SQL 2000 中执行此操作...请忽略我的查询。在 SQL 2000 中,您需要一个临时表来生成序列。
Without a temp table:
Oops - did not see that you want to do this in SQL 2000 until after posting this ... ignore my query please. In SQL 2000 you need a temp table to generate the sequence.