Rod*_*igo 34 sql sql-server sql-server-2000 row-number auto-increment
如果可能的话,我需要一个t-sql查询,它从任意表返回值,也返回一个增量整数列,第一行的值为1,第二行的值为2,依此类推.
这个列实际上并不存在于任何表中,并且必须是严格增量的,因为ORDER BY子句可以对表的行进行排序,并且我希望增量行始终处于完美形状...
提前致谢.
--EDIT抱歉,忘记提及,必须在SQL Server 2000上运行
SQL*_*ace 58
对于SQL 2005及更高版本
SELECT ROW_NUMBER() OVER( ORDER BY SomeColumn ) AS 'rownumber',*
FROM YourTable
Run Code Online (Sandbox Code Playgroud)
对于2000你需要做这样的事情
SELECT IDENTITY(INT, 1,1) AS Rank ,VALUE
INTO #Ranks FROM YourTable WHERE 1=0
INSERT INTO #Ranks
SELECT SomeColumn FROM YourTable
ORDER BY SomeColumn
SELECT * FROM #Ranks
Order By Ranks
Run Code Online (Sandbox Code Playgroud)
另见 行号
您可以从自定义编号开始,然后从那里开始递增,例如,您想为您可以执行的每笔付款添加一个支票编号:
select @StartChequeNumber = 3446;
SELECT
((ROW_NUMBER() OVER(ORDER BY AnyColumn)) + @StartChequeNumber ) AS 'ChequeNumber'
,* FROM YourTable
Run Code Online (Sandbox Code Playgroud)
将为每一行提供正确的支票号码。
尝试 ROW_NUMBER()
http://msdn.microsoft.com/en-us/library/ms186734.aspx
例子:
SELECT
col1,
col2,
ROW_NUMBER() OVER (ORDER BY col1) AS rownum
FROM tbl
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99241 次 |
| 最近记录: |