Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Mathematical User-Defined Functions

Total Hit ( 2616)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


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 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.