MSSQL数据库求余技巧简介(mssql 求余)

MSSQL数据库求余技巧简介

MSSQL是一种Microsoft公司开发的数据库,拥有很多丰富的功能,这其中包含了求余技巧,我们可以利用它实现程序中复杂的分支流程。

首先详细介绍下MSSQL的求余操作,通常使用的是Mod(模)语法实现求余,形式为: MOD ,其中和可以是任何有效的MSSQL表达式,返回值为表达式1除以表达式2的余数,或者可以理解为从表达式1中去掉表达式2的整数倍,剩下的就是余数。例如:

SELECT 11 MOD 3,

返回结果为2。

针对求余操作,MSSQL提供了专门的函数,函数名为REMAINDER,函数定义为:

REMAINDER (Float_Real_1, Float_Real_2),

Float_Real_1表示除数,Float_Real_2表示被除数,返回结果与MOD语法类似都是余数,但有些不同的是是地方,REMAINDER函数会根据被除数的符号而改变返回结果;也就是说如果被除数为负,结果为负,否则结果为正。例如:

SELECT REMAINDER(9, -2),

返回结果为1。

求余操作不仅针对两个表达式有效,也对一个表达式对求余有效,例如:

SELECT 11 MOD 5,

返回结果为1,

或者

SELECT 11 MOD 3 * 5,

返回结果也是1。

以上就是MSSQL数据库求余技巧的简介,其一般的应用是做用于循环,根据循环次数的余数判断每次循环后应该发生的任务,例如:

— 例1:根据变量interval的余数确定每次循环发生的任务

DECLARE @CurrentIndex INT, @interval INT

SET @CurrentIndex = 1

SET @interval = 10

WHILE @CurrentIndex

BEGIN

IF (@CurrentIndex % @intervalMOD 0) = 0

BEGIN

— 每隔10次循环做打印任务

PRINT ‘第’ + CAST(@CurrentIndex AS VARCHAR(30)) + ‘次循环做打印任务’

END

ELSE

BEGIN

PRINT ‘第’ + CAST(@CurrentIndex AS VARCHAR(30)) + ‘次循环做其他任务’

END

SET @CurrentIndex = @CurrentIndex + 1

END

另外,MSSQL还提供了专门的T-SQL求余函数,比如数学上的”绝对值计算”。对于绝对值计算,T-SQL提供了一个函数ABS,它将不正值变成正值,用法是:

ABS(‘表达式’),

如:

SELECT ABS(-1),

返回结果为1。

总之,MSSQL求余技术可以很好地实现复杂的循环逻辑,节省很多编码成本,有着重要的应用价值。


数据运维技术 » MSSQL数据库求余技巧简介(mssql 求余)