内联用户定义函数

简介:
内联用户定义函数是返回  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,如需转载请自行联系原作者
相关文章
|
2月前
|
Python
定义函数
定义函数。
31 4
|
4月前
|
JavaScript
S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
|
6月前
|
存储 前端开发 JavaScript
css的变量和自定义变量概念
css的变量和自定义变量概念
|
6月前
|
存储 Java C#
怎样定义函数
怎样定义函数
45 2
|
6月前
|
存储 Python
函数的定义
函数的定义
|
6月前
|
JavaScript 前端开发
JavaScript闭包允许内部函数访问并保留外部函数的变量,即使外部函数执行结束
【5月更文挑战第13天】JavaScript闭包允许内部函数访问并保留外部函数的变量,即使外部函数执行结束。在游戏开发中,闭包常用于创建独立状态的角色实例。例如,`createCharacter`函数生成角色,内部函数(如`getHealth`、`setHealth`)形成闭包,保存角色的属性(如生命值)。这样,每个角色实例都有自己的变量副本,不互相影响,从而实现角色系统的独立性。
51 0
|
6月前
|
存储 Serverless Python
定义函数的方法
在编程中,函数是一个非常重要的概念。函数是一段可以重复使用的代码,它接受输入(称为参数),执行一系列操作,然后可能返回一些输出。通过定义函数,我们可以提高代码的可读性、可维护性和复用性。本文将介绍如何定义函数,并附上相应的代码示例。
63 1
|
6月前
|
Serverless Python
为什么要定义函数
为什么要定义函数
162 1
C4.
|
6月前
|
Python
Phython定义函数
Phython定义函数
C4.
58 0