sqlserver中的表值函数和标量值函数
发布时间:2020-12-12 13:44:14 所属栏目:MsSql教程 来源:网络整理
导读:顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一、表值函数 用户定义表值函数返回 table 数据类型。对于内联表值函数,没有函数主体;表是单个 SELECT 语句的结果集。 以下示例创建了一个内联表值函数。此函数的输入参数为客户(商店)ID,而
顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一、表值函数 用户定义表值函数返回 table 数据类型。对于内联表值函数,没有函数主体;表是单个 SELECT 语句的结果集。 以下示例创建了一个内联表值函数。此函数的输入参数为客户(商店)ID,而返回? ? USE AdventureWorks; GO CREATE FUNCTION Sales.fn_SalesByStore (@storeid int) RETURNS TABLE AS RETURN ( SELECT P.ProductID,P.Name,SUM(SD.LineTotal) AS 'YTD Total' FROM Production.Product AS P JOIN Sales.SalesOrderDetail AS SD ON SD.ProductID = P.ProductID JOIN Sales.SalesOrderHeader AS SH ON SH.SalesOrderID = SD.SalesOrderID WHERE SH.CustomerID = @storeid GROUP BY P.ProductID,P.Name ); GO 以下示例调用此函数并指定客户 ID 为 602
SELECT * FROM Sales.fn_SalesByStore (602); 对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。 以下示例创建了一个表值函数。此函数具有一个输入参数? -- Example invocation
SELECT EmployeeID,EmployeeLevel
FROM dbo.fn_FindReports(109)
ORDER BY Sort;
二、标量值函数
写一个标量值函数
FUNCTION [dbo].testGetSubNodes_]
(
@nodeId int
)
int
BEGIN
declare @nodeCount int
select @nodeCount=5 from MenuTree
return @nodeCount
END
FUNCTION FUN_DataFormat (@strDate datetime) varchar(20) AS BEGIN @date 20) set @date = DATENAME(YY,@strDate)+年'Convert(VARCHAR,255); line-height:1.5!important">MONTH(@strDate))月DAY(日@date END 可以通过select dbo.FUN_DataFormat(getdate())来使用。 转自:http://www.cnblogs.com/tianguook/p/5166515.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |