创建自身重置的列

  • 本文关键字:创建 sql sql-server tsql
  • 更新时间 :
  • 英文 :


我有一个由递增整数组成的列(从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;

相关内容

  • 没有找到相关文章