如何在我的 SQL 表中获得额外的自动编号。我已经有一个 IDENTITY 列,但我需要一个也自动递增的附加列。
问问题
160 次
3 回答
3
您可以使用一组排名函数。例如,您可以ROW_NUMBER()
像这样使用该函数:
SELECT *, ROW_NUMBER() OVER (ORDER BY somefield) rownum
FROM table;
于 2012-11-29T09:11:49.947 回答
1
如果您有两个自动递增的列,那么它们必须始终相差一个常数,所以这样做没有任何价值吗?如果您真的希望它成为一列,那么您可以根据自动递增列的值将其设为计算列,
于 2012-11-29T09:14:54.093 回答
0
你可以做这样的事情,
假设您有一个带有 columnName 的表ColA
,这就是您要增加的内容,
INSERT INTO tableName (colA, colB)
SELECT COALESCE((SELECT MAX(colA) + 1 FROM tableName),1) as ColA,
'colBValue' AS colB
FROM tableName
于 2012-11-29T09:13:05.557 回答