|
|
|
Introduction Mathematical UDFs Factorial PercentFrom PercentValue Degree Allocation Combination
--------------------------------------------------------------------------------
Introduction I would like to write the series of articles about useful User-Defined Functions grouped by the following categories:
Date and Time User-Defined Functions Mathematical User-Defined Functions Metadata User-Defined Functions Security User-Defined Functions String User-Defined Functions System User-Defined Functions Text and Image User-Defined Functions
In this article, I wrote some useful Mathematical User-Defined Functions.
Mathematical UDFs These scalar User-Defined Functions perform a calculation, usually based on input values provided as arguments, and return a numeric value.
Factorial Returns the factorial value of the given number.
Syntax Factorial ( number )
Arguments number - integer value.
Return Types bigint
The function's text: CREATE FUNCTION Factorial ( @number int ) RETURNS bigint AS BEGIN DECLARE @i int, @factorial bigint IF @number > 20 RETURN 0 SET @i = 1 SET @factorial = 1 WHILE @i <= @number BEGIN SET @factorial = @factorial * @i SET @i = @i + 1 END RETURN @factorial END GO
Examples This example returns the factorial value of the number 5:
SELECT dbo.Factorial(5)
Here is the result set:
-------------------- 120
(1 row(s) affected)
PercentFrom Returns the percent of the expression1 in the expression2.
Syntax PercentFrom ( expression1, expression2 )
Arguments expression1 - is an expression of the exact numeric or approximate numeric data type category. expression2 - is an expression of the exact numeric or approximate numeric data type category.
Return Types float
The function's text: CREATE FUNCTION PercentFrom ( @expression1 SQL_VARIANT, @expression2 SQL_VARIANT ) RETURNS float AS BEGIN RETURN (CAST(@expression1 AS FLOAT)/CAST(@expression2 AS FLOAT)*100) END GO
Examples This example returns the percent of the 137 in the 273:
SELECT dbo.PercentFrom(137, 273)
Here is the result set:
------------------------------------- 50.183150183150182
(1 row(s) affected)
PercentValue Returns the percent's value from the given expression for the given percent.
Syntax PercentValue ( expression, percent )
Arguments expression - is an expression of the exact numeric or approximate numeric data type category. percent - integer value.
Return Types float
The function's text: CREATE FUNCTION PercentValue ( @expression SQL_VARIANT, @percent int ) RETURNS float AS BEGIN RETURN ( CAST(@expression AS FLOAT) / 100 * @percent ) END GO
Examples Returns the percent's value from the number 137 for the percent 11:
SELECT dbo.PercentValue (137, 11)
Here is the result set:
-------------------------- 15.07
(1 row(s) affected)
Degree Returns the degree for the given number and degree value.
Syntax Degree ( number, degree )
Arguments number - is an expression of the exact numeric or approximate numeric data type category. degree - integer value.
Return Types float
The function's text: CREATE FUNCTION Degree ( @number SQL_VARIANT, @degree int ) RETURNS float AS BEGIN DECLARE @i int, @res float SET @i = 1 SET @res = 1 WHILE @i <= @degree BEGIN SET @res = CAST(@number AS FLOAT) * @res SET @i = @i + 1 END RETURN @res END GO
Examples Returns the degree 4 for the number 3:
SELECT dbo.Degree(3, 4)
Here is the result set:
------------------------------- 81.0
(1 row(s) affected)
Allocation Returns the allocation from the m by n.
Syntax Allocation ( m, n )
Arguments m - integer value. n - integer value.
Return Types int
The function's text: CREATE FUNCTION Allocation ( @m int, @n int ) RETURNS int AS BEGIN RETURN (dbo.Factorial(@m)/dbo.Factorial(@m-@n)) END GO
Examples Returns the allocation from the 5 by 3:
SELECT dbo.Allocation(5,3)
Here is the result set:
----------- 60
(1 row(s) affected)
Combination Returns the combination from the m by n.
Syntax Combination ( m, n )
Arguments m - integer value. n - integer value.
Return Types int
The function's text: CREATE FUNCTION Combination ( @m int, @n int ) RETURNS int AS BEGIN RETURN (dbo.Factorial(@m)/(dbo.Factorial(@m-@n)*dbo.Factorial(@n))) END GO
Examples Returns the combination from the 5 by 3:
SELECT dbo.Combination(5,3)
Here is the result set:
----------- 10
(1 row(s) affected) |
|
|
|
Submitted By :
Nayan Patel
(Member Since : 5/26/2004 12:23:06 PM)
|
|
|
Job Description :
He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting. |
View all (893) submissions by this author
(Birth Date : 7/14/1981 ) |
|
|