sql-server - 在 SQL Server 中生成递增数字的函数

标签 sql-server tsql

有没有办法从一个函数中选择并让它返回递增的数字?

例如,这样做:

SELECT SomeColumn, IncrementingNumbersFunction() FROM SomeTable

让它返回:

SomeColumn | IncrementingNumbers
--------------------------------
some text  | 0
something  | 1
foo        | 2

最佳答案

在 sql server 2005 及更高版本上,您可以使用 ROW_NUMBER()

SELECT SomeColumn, 
     ROW_NUMBER() OVER(Order by SomeColumn) as IncrementingNumbers
 FROM SomeTable

0n SQL Server 2000,你可以使用身份,但如果你有删除,你就会有差距

SQL 2000 代码,以防您在带有标识列的常规表中有间隙,插入到带有标识的临时表中,然后从中选择

SELECT SomeColumn, 
     IDENTITY( INT,1,1) AS IncrementingNumbers
     INTO #temp
 FROM SomeTable
 ORDER BY SomeColumn


 SELECT * FROM #temp
 ORDER BY IncrementingNumbers

关于sql-server - 在 SQL Server 中生成递增数字的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559294/

相关文章:

sql-server - 临时表存在于 tempdb 中

sql - ROW_NUMBER() 和 GROUP BY 的不同之处

sql - 如何在 SQL Server 中删除或截断表?

tsql - 如何使用 T-SQL 生成 Mandelbrot?

sql - 如果存在,则选择其他插入然后选择

sql - 查询获取超过 3 周的内容

sql - 如何在 SQL Server 中截断日期时间?

sql - 提高查询从 View 中获取数据的性能

sql-server - 如何在 SQL Server 2012 中使用 GROUP BY

sql - Web 服务、Windows 服务或 SQL CLR 集成?