Función Factorial en SQL Server (recursiva)

El día de hoy respondí una pregunta en stackoverflow a cerca de la función factorial en TSQL, en realidad la pregunta era con respecto de un error con la sentencia IF en SQL Server.

Les dejo el código producido ya que es pequeño y eficiente, además es una buena muestra de cómo manejar funciones recursivas dentro de SQL Server.

create function factfind(@num integer)
 returns Decimal(38,0)
as
begin
 declare @Result Decimal(38,0)
 set @Result = 1
 if (@num>1)
 set @Result = @num * dbo.factfind(@num-1);
 return @Result
end 

Parte de las consideraciones que hay que tener para poder realizar la recursión en SQL Server es que las funciones deben cualificarse con el esquema al que pertenecen, de allí la llamada a dbo.factfind

La función retorna un Decimal(38,0) ya que los resultados no pueden ser contenidos en un entero a partir de 13!

Advertisement

One Response to Función Factorial en SQL Server (recursiva)

  1. Pingback: Función Factorial en SQL Server (recursiva) « DbRunas – Noticias y Recursos sobre Bases de Datos

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.