SQL编写上面的数字限制

时间:2016-08-19 14:40:32

标签: sql sql-server

enter image description here我正在编写一段SQL,它会知道仪表何时通过(通过零)TTZ,例如4位仪表9999是最大值,之后它将自身重置为0然后1等,我想知道的是什么是在派生列中识别这个的最佳方法?

我最初的想法是对9999的值使用case语句,如果是,那么使用一个标志为1,但问题在于随着时间的推移有更多的TTZ。

其中meterread是4位数字的字段。最高可达9999。 理想情况下,我希望派生列分隔每个TTZ,并知道如果我要做一些Windows函数,如运行sum over()order by etc

对不起它与sql的详细内容不太相关,但只是希望了解

在此示例中,StartRead从9889变为449

1 个答案:

答案 0 :(得分:0)

使用meterserial%10000

创建计算列
CREATE Table Meter 
(
Meterserial Int,
Metereaddate datetime,
meterread int,
met4digit as meterserial%1000
)