如何将字段重置为' 1'在SQL SERVER

时间:2018-02-13 14:41:34

标签: sql-server

我有一个表table_1,其中包含两列:NUMBER_FIELD_1FIELD_2

我有以下查询:

SELECT FIELD_2 AS FIELD_2,
max(NUMBER_FIELD_1) AS NUMBER     
FROM TABLE_1
group by FIELD_2

如何更改上述查询以检查NUMBER_FIELD_1的最大值是否达到999,如果确实如此,则将其重置为1

2 个答案:

答案 0 :(得分:0)

我通常使用模块化计算。即除以数字时的余数。

看看这个,看看它是否能让你了解如何实现。

SELECT 998 % 1000, 999 % 1000, 1000 % 1000, 1001 % 1000

答案 1 :(得分:0)

马修的解决方案看起来像是明智的解决方案。这是另一种选择,也许这更直观:

SELECT  T.NUMBER_FIELD_1
,       ROW_NUMBER()OVER(PARTITION BY grp.frmID ORDER BY T.NUMBER_FIELD_1) RN
,       T.FIELD_2
FROM    TABLE_1 T
INNER JOIN (
                VALUES(1, 999)
                ,     (1000, 1999)
                ,     (2000, 2999)
            ) grp(frmID, toID)
        ON  T.NUMBER_FIELD_1 >= grp.frmID
        AND T.NUMBER_FIELD_1 <= grp.toID