如何在Sql server 2000中生成RowID而不使用身份列
让我提出我的问题......
我已经说过
Name
A
B
C
A
D
B
我想要的是
ID Name
1 A
2 B
3 C
4 A
5 D
6 B
如果我写 SELECT name, (SELECT COUNT(*) FROM @t AS i2 WHERE i2.Name <= i1.Name) As rn FROM @t AS i1
如果所有名称都不同,它将正常工作/独特...如果它们不是(如本例所示),
即使 NEWID() 也无法解决问题,因为它会随着时间的推移而变化?
我正在使用 sql server 2000...
请帮助
Let me frame my question ....
I have say
Name
A
B
C
A
D
B
What I want is
ID Name
1 A
2 B
3 C
4 A
5 D
6 B
If I writeSELECT name, (SELECT COUNT(*) FROM @t AS i2 WHERE i2.Name <= i1.Name) As rn FROM @t AS i1
it will work fine if all the names are distinct/unique...What if they are not(as in this example)
Even NEWID() does not make the trick as it varies overtime?
I am using sql server 2000...
Please help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里有2种解决方法
1.
2.
Here are 2 ways of solving it
1.
2.