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!

Anuncios

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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: