我正在尝试使用动态的自动递增列编写存储过程[SQL 2008],并且这种语法已经逃过了我。
如果我有一个名为widget的表,其中包含一个名为widget_nm的列,我的目标是
SELECT [???] AS widget_id, widget_nm FROM widget
并获得以下结果
widget_id | widget_nm
1 | bob
2 | sally
3 | fred
我记得曾经这样做过,但我的记忆让我失望......有什么建议吗?
节日快乐!
答案 0 :(得分:5)
你没有提到你正在使用的sql方言,
如果您使用的是mssql(Tsql)2005+,请使用Row_Number()函数
答案 1 :(得分:4)
您可以在SQL Server 2005及更高版本中使用ROW_NUMBER:
SELECT ROW_NUMBER() OVER (ORDER BY widget_nm) AS widget_id, widget_nm
FROM widget
ORDER BY widget_nm
将按照widget_nm的顺序编号
答案 2 :(得分:0)
如果您使用的是SQL Server 2005,则为trivial。