假设您有一个包含ID列和几个文本列的表,并且您希望为每个表分配一个从1到4的数字。 这个数字在达到4之后会循环到1:
ID Num ...
1 1
2 2
3 3
4 4
5 1
6 2
7 3
8 4
9 1
. .
. .
. .
我一直试图弄清楚这个小谜题。我一直在尝试使用RANK()
或ROW_NUMBER()
,但到目前为止还没有成功。
答案 0 :(得分:4)
使用以下内容:
select
id,
(ROW_NUMBER() OVER(order by id) - 1) % 4 + 1 As nr
from
tbl