表值函数(Table-Valued Functions, TVFs)在 SQL Server 中非常有用,适用于多种场景。以下是常见的使用场景:
1. 数据提取和转换
• 数据过滤:根据特定条件从表中提取数据。
• 数据聚合:对数据进行聚合操作,如计算总和、平均值等。
• 数据转换:将数据从一种格式转换为另一种格式。
示例:根据部门ID提取员工信息。
CREATE FUNCTION GetEmployeesByDepartment (@DeptID INT)
RETURNS TABLE
AS
RETURN
(
SELECT EmployeeID, FirstName, LastName, DepartmentID
FROM Employees
WHERE DepartmentID = @DeptID
);
2. 复杂查询封装
• 简化复杂查询:将复杂的查询逻辑封装在函数中,简化主查询。
• 重用查询逻辑:在多个地方重用相同的查询逻辑。
示例:获取客户的订单摘要。
CREATE FUNCTION GetCustomerOrders (@CustID INT)
RETUR