重置一个变量,该变量存储当计数达到一定数量时查询运行回1的次数吗?

问题描述 投票:0回答:1

我有一个变量来存储查询运行的次数,但是它的长度限制为3个字符,我不能修改。因此,一旦计数达到999,我就认为逻辑将失败。

SET @QueryCount = (
    SELECT COUNT(1) FROM dbo.Records WHERE QueryName = @QueryName
);

[目前,我没有逻辑来说明一个超过3个字符的计数,并且期望变量在达到999时将被重置为1。

sql sql-server limit reset
1个回答
0
投票

您可以尝试进行整数除法:

SET @QueryCount = (
    SELECT COUNT(1) - COUNT(1) / 1000 * 1000
    FROM dbo.Records 
    WHERE QueryName = @QueryName
);

这保证该值将属于范围0..999。值达到1000时,将重置为0

Demo of the arithmetic logic

DECLARE @value int = 999
SELECT @value - @value / 1000 * 1000

Yieds:999

DECLARE @value int = 1000
SELECT @value - @value / 1000 * 1000

收益率:0

DECLARE @value int = 3525
SELECT @value - @value / 1000 * 1000

收益率:525

© www.soinside.com 2019 - 2024. All rights reserved.