具有增量整数列的 MSSQL Select 语句...不是来自表
如果可能的话,我需要一个 t-sql 查询,该查询从任意表返回值,还返回一个增量整数列,第一行值为 1,第二行值为 2,依此类推。
该列实际上并不驻留在任何表中,并且必须是严格增量的,因为 ORDER BY 子句可以对表的行进行排序,并且我希望增量行始终保持完美的形状。
该解决方案必须在 SQL Server 2000 上运行
I need, if possible, a t-sql query that, returning the values from an arbitrary table, also returns a incremental integer column with value = 1 for the first row, 2 for the second, and so on.
This column does not actually resides in any table, and must be strictly incremental, because the ORDER BY clause could sort the rows of the table and I want the incremental row in perfect shape always.
The solution must run on SQL Server 2000
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于 SQL 2005 及更高
版本的 2000,您需要执行类似的操作,
另请参阅此处 行号
For SQL 2005 and up
for 2000 you need to do something like this
see also here Row Number
您可以从自定义号码开始,然后从那里递增,例如,您想要为您可以执行的每笔付款添加支票号码:
将为每行提供正确的支票号码。
You can start with a custom number and increment from there, for example you want to add a cheque number for each payment you can do:
will give the correct cheque number for each row.
尝试 ROW_NUMBER()
http://msdn.microsoft.com/en-us/library /ms186734.aspx
示例:
Try ROW_NUMBER()
http://msdn.microsoft.com/en-us/library/ms186734.aspx
Example:
它很丑陋并且性能很差,但从技术上讲,这适用于任何具有至少一个唯一字段的表,并且适用于 SQL 2000。
注意:如果您使用此方法并向外部 SELECT 添加 WHERE 子句,则必须将其添加到如果您希望数字连续,也可以使用内部 SELECT。
It is ugly and performs badly, but technically this works on any table with at least one unique field AND works in SQL 2000.
Note: If you use this approach and add a WHERE clause to the outer SELECT, you have to added it to the inner SELECT also if you want the numbers to be continuous.