根据列值的变化增加和更改计数器

时间:2017-08-25 07:53:03

标签: sql sql-server

我的查询会返回这样的结果。 sqlfiddle

COLOR_NAME

RED
RED
RED
GREEN
GREEN
BLUE
WHITE
WHITE
WHITE
WHITE
WHITE
WHITE

我需要用上面的结果显示数字。所以期望的结果是这样的。

COLOR_NAME SORT_NO

RED         10
RED         11
RED         12
GREEN       10
GREEN       11
BLUE        10
WHITE       10
WHITE       11
WHITE       12
WHITE       13
WHITE       14
WHITE       15

我怎样才能在ms sql中实现这个目标?

1 个答案:

答案 0 :(得分:3)

您可以使用ROW_NUMBER()功能

select COLOR_NAME 
, 9 + ROW_NUMBER() OVER (PARTITION BY COLOR_NAME ORDER BY ID) AS Sort_No
from TB_COLOR

SQLFiddle