2017-08-25 142 views
0

我的查询返回像这样的结果。 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实现这一目标?

回答

3

可以使用ROW_NUMBER()功能

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

SQLFiddle

+0

谢谢您的回答。保存了我的一天。 – Bishan