SQL SERVER 提供了SUM、COUNT、MAX、MIN、AVG等聚合函数,但是没有提供连乘的函数,但是在实际开发过程中,我们可能会用到连乘的数据,所以我们可以自己实现连乘的写法,测试数据:
--测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([num] int) Insert #T select 1 union all select 2 union all select 3 union all select 4 union all select 5 Go --测试数据结束
普通的实现方式:
DECLARE @I BIGINT SET @I = 1 SELECT @I = @I * ISNULL([num], 1) FROM #T SELECT @I
结果:
上边是一般写法,我们可以用数学的方式实现连乘形式:
SELECT EXP(SUM(LOG(#T.num))) FROM #T
结果同上边一样:
以上我们实现了连乘的写法。