• Here's the SQL factorial:

    With Fact (Num, Factorial)

    As

    (

    Select 0 as Num, convert(bigint, 1) as Factorial

    Union All

    Select Num + 1, convert(bigint, Num + 1) * Factorial from Fact

    Where Num + 1 <= 20 --Recursion Buster; not really necessary since Fact(21) doesn't fit in a BigInt anyway

    )

    Select * from Fact