Types of Function
- 
System Defined Function
These functions are defined by Sql Server for different purpose. We have two types of system defined function in Sql Server
- 
Scalar Function
Scalar functions operates on a single value and returns a single value. Below is the list of some useful Sql Server Scalar functions.
abs(-10.67)-
This returns absolute number of the given number means 10.67.rand(10)-This will generate random number of 10 characters.round(17.56719,3)-This will round off the given number to 3 places of decimal means 17.567upper(‘dotnet’)-This will returns upper case of given string means ‘DOTNET’lower(‘DOTNET’)-This will returns lower case of given string means ‘dotnet’ltrim(‘ dotnet’)-This will remove the spaces from left hand side of ‘dotnet’ string.convert(int, 15.56)-This will convert the given float value to integer means 15. - 
Aggregate Function
Aggregate functions operates on a collection of values and returns a single value. Below is the list of some useful Sql Server Aggregate functions.
max()-
This returns maximum value from a collection of values.min()-This returns minimum value from a collection of values.avg()-This returns average of all values in a collection.count()-This returns no of counts from a collection of values. 
 - 
 - 
User Defined Function
These functions are created by user in system database or in user defined database. We three types of user defined functions.
- 
Scalar Function
User defined scalar function also returns single value as a result of actions perform by function. We return any datatype value from function.
- –Create a table
 - CREATE TABLE Employee
 - (
 - EmpID int PRIMARY KEY,
 - FirstName varchar(50) NULL,
 - LastName varchar(50) NULL,
 - Salary int NULL,
 - Address varchar(100) NULL,
 - )
 - –Insert Data
 - Insert into Employee(EmpID,FirstName,LastName,Salary,Address) Values(1,’Mohan’,’Chauahn’,22000,’Delhi’);
 - Insert into Employee(EmpID,FirstName,LastName,Salary,Address) Values(2,’Asif’,’Khan’,15000,’Delhi’);
 - Insert into Employee(EmpID,FirstName,LastName,Salary,Address) Values(3,’Bhuvnesh’,’Shakya’,19000,’Noida’);
 - Insert into Employee(EmpID,FirstName,LastName,Salary,Address) Values(4,’Deepak’,’Kumar’,19000,’Noida’);
 - –See created table
 - Select * from Employee
 

- –Create function to get emp full name
 - Create function fnGetEmpFullName
 - (
 - @FirstName varchar(50),
 - @LastName varchar(50)
 - )
 - returns varchar(101)
 - As
 - Begin return (Select @FirstName + ‘ ‘+ @LastName);
 - end
 

- –Calling the above created function
 - Select dbo.fnGetEmpFullName(FirstName,LastName) as Name, Salary from Employee
 

 - 
Inline Table-Valued Function
User defined inline table-valued function returns a table variable as a result of actions perform by function. The value of table variable should be derived from a single SELECT statement.
- –Create function to get employees
 - Create function fnGetEmployee()
 - returns Table
 - As
 - return (Select * from Employee)
 

- –Now call the above created function
 - Select * from fnGetEmployee()
 

 - 
Multi-Statement Table-Valued Function
User defined multi-statement table-valued function returns a table variable as a result of actions perform by function. In this a table variable must be explicitly declared and defined whose value can be derived from a multiple sql statements.
- –Create function for EmpID,FirstName and Salary of Employee
 - Create function fnGetMulEmployee()
 - returns @Emp Table
 - (
 - EmpID int,
 - FirstName varchar(50),
 - Salary int
 - )
 - As
 - begin
 - Insert @Emp Select e.EmpID,e.FirstName,e.Salary from Employee e;
 - –Now update salary of first employee
 - update @Emp set Salary=25000 where EmpID=1;
 - –It will update only in @Emp table not in Original Employee table
 - return
 - end
 

- –Now call the above created function
 - Select * from fnGetMulEmployee()
 

- –Now see the original table. This is not affected by above function update command
 - Select * from Employee
 

 
 - 
 
				
			
			