在SQL Server中,函数是一种可重复使用的SQL代码块,它接受输入参数并返回一个值。SQL Server提供了多种类型的函数,包括标量函数、表值函数和聚合函数。
- 标量函数(Scalar Functions):标量函数是一种函数,接受输入参数并返回单个值。它们可以用于在SELECT语句、WHERE子句或其他T-SQL语句中执行计算或逻辑操作。标量函数可以是内联函数(INLINE)或多语句函数(MULTISTATE)。内联函数是一种简单的、单一的表达式,而多语句函数可以包含多个T-SQL语句。标量函数通过RETURN语句返回值。
示例:
CREATE FUNCTION dbo.GetFullName (@FirstName NVARCHAR(50), @LastName NVARCHAR(50))
RETURNS NVARCHAR(100)
AS
BEGIN
DECLARE @FullName NVARCHAR(100)
SET @FullName = @FirstName + ' ' + @LastName
RETURN @FullName
END
- 表值函数(Table-Valued Functions):表值函数是一种函数,返回一个表作为结果集。它们可以接受参数,并动态计算和返回结果集。表值函数可以是内联函数(INLINE)或多语句函数(MULTISTATE)。内联函数类似于视图,返回结果集,而多语句函数可以包含更复杂的逻辑。
示例:
CREATE FUNCTION dbo.GetEmployeeByDepartment (@DepartmentID INT)
RETURNS TABLE
AS
RETURN
(
SELECT EmployeeID, FirstName, LastName
FROM Employees
WHERE DepartmentID = @DepartmentID
)
- 聚合函数(Aggregate Functions):聚合函数对一组值执行计算,并返回单个值。SQL Server提供了一些内置的聚合函数,如SUM、AVG、MAX、MIN和COUNT等。
示例:
SELECT SUM(Salary) AS TotalSalary
FROM Employees
这些是SQL Server中的一些常见类型的函数。函数在SQL Server中是非常有用的,它们可以帮助简化复杂的计算和逻辑操作,并可以提高代码的重用性。