开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

内联用户定义函数

简介:
+关注继续查看
内联用户定义函数是返回 table 数据类型的用户定义函数的子集。内联函数可用于获得参数化视图的功能。
以下示例将返回指定区域的商店名称和城市:
USE AdventureWorks; GO SELECT DISTINCT S.Name AS Store, A.City FROM Sales.Store AS S JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID JOIN Person.Address AS A ON A.AddressID = CA.AddressID JOIN Person.StateProvince SP ON SP.StateProvinceID = A.StateProvinceID WHERE SP.Name = N'Washington';
如果此视图更通用,并且允许用户在查看时指定所感兴趣的区域,那么则会更好。然而,视图不支持在 WHERE 子句中指定的搜索条件的参数。内联用户定义函数可用于支持在 WHERE 子句中指定的搜索条件的参数。以下示例将创建一个允许用户在查询中指定区域的内联函数:
USE AdventureWorks; GO CREATE FUNCTION Sales.ufn_CustomerNamesInRegion ( @Region nvarchar(50) ) RETURNS table AS RETURN ( SELECT DISTINCT S.Name AS Store, A.City FROM Sales.Store AS S JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID JOIN Person.Address AS A ON A.AddressID = CA.AddressID JOIN Person.StateProvince SP ON SP.StateProvinceID = A.StateProvinceID WHERE SP.Name = @Region ) GO -- Example of calling the function for a specific region SELECT * FROM Sales.ufn_CustomerNamesInRegion(N'Washington') GO
内联用户定义函数遵从以下规则:
  • RETURNS 子句只包含关键字 table。不必定义返回变量的格式,因为它由 RETURN 子句中的 SELECT 语句的结果集的格式设置。
  • function_body 不用 BEGIN 和 END 分隔。
  • RETURN 子句在括号中包含单个 SELECT 语句。SELECT 语句的结果集构成函数所返回的表。内联函数中使用的 SELECT 语句与视图中使用的 SELECT 语句受到相同的限制。

本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/6933,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
4 函数的定义及使用
4 函数的定义及使用
0 0
H5 中 bordercolorlight 属性的用法及作用
H5 中 bordercolorlight 属性的用法及作用
0 0
C/C++普通函数与函数模板的区别,调用规则,模板局限性
C/C++普通函数与函数模板的区别,调用规则,模板局限性
0 0
函数的作用
函数的作用
0 0
动态传参的方式改变div样式
动态传参的方式改变div样式
0 0
IntelliSense 无法重载仅按返回类型区分的函数
IntelliSense:无法重载仅按返回类型区分的函数 d:\programfiles (x86)\microsoft sdks\windows\v7.0a\include\winbase.h 3540 在VS2010下用C语言写Windows系统服务,从另一个c#的项目中Copy过来一段代码,修改后再编译,就产生了这个错误! 在网上搜索得到的答案是:“无法重载仅按返回类型区分的函数”这种情况一般只会发生在有同名函数的情况下,但是我那段代码里却没有同名函数。
674 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
继承与功能组合
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载