I am a beginner in SQL Functions. What is the best way to create a function for factorial in SQL Server- Say 10!
See Question&Answers more detail:osI am a beginner in SQL Functions. What is the best way to create a function for factorial in SQL Server- Say 10!
See Question&Answers more detail:osA non recursive way
;With Nums As
(
select ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS RN
FROM sys.objects
)
SELECT POWER(10.0, SUM(LOG10(RN)))
FROM Nums
WHERE RN <= 10
And a recursive way
declare @target int
set @target=10;
WITH N AS
(SELECT 1 AS i,
1 AS f
UNION ALL
SELECT i+1,
f*(i+1)
FROM N
WHERE i < @target
)
SELECT f FROM N
WHERE i=@target