我有一个由递增整数组成的列(从1开始,增加到N)。我想创建第二个列,从1,2,3,4开始,然后重置,从1,2,3开始,…等等......明确显示,这就是我想要的:
1 1
2 2
3 3
4 4
5 1
6 2
7 3
8 4
9 1
10 2
11 3
12 4
13 1
14 2
15 3
... ...
你有一个提示,我如何在SQL中做到这一点?理想的一个完整的代码示例?
您可以尝试用ROW_NUMBER()
对行进行编号,并添加一个简单的计算:
SELECT Column1, ((ROW_NUMBER() OVER (ORDER BY Column1) - 1) % 4) + 1 AS Column2
FROM Yourtable
如果根据"从1开始,增加到N">语句,1和N
之间的数字一定是连续的,那么实际上根本不需要ROW_NUMBER
;您可以将逻辑应用到列Column1
:
SELECT Column1,
((Column1 - 1) % 4) + 1 AS SequenceColumn
FROM dbo.YourTable;