函数

简介: create function [拥有者.] 函数名([@参数名 as 标量数据类型 [=default]])returns 返回变量 table[as]begin 函数体 returnend1、标量函数标量函数是返回单个数据值的函数。

create function [拥有者.] 函数名
([@参数名 as 标量数据类型 [=default]])
returns 返回变量 table<表定义>
[as]
begin
  函数体
  return
end
1、标量函数

标量函数是返回单个数据值的函数。

create function [拥有者.] 函数名
([{@参数名 [as] 标量数据类型 [=default]}])
returns 返回值类型
[as]
begin
  函数体
  return 标量表达式
end

说明:

1)同存储过程一样,函数的参数也可以有默认值。如果函数的参数有默认值,则在调用该函数时必须指定"default"关键字。这与存储过程的有默认值参数的使用略有不同,在存储过程中省略参数则意味着使用默认值。

2)标量表达式:指定标量函数返回的标量值(即单个数据值)

标量函数返回在returns子句中定义的类型的单个数据值。标量函数的返回值类型不能是大文本、图像等类型。

如:

create function  dbo.f_GoodsCount (@class varchar(10))
returns int
as
begin
  declare @x int
  select @x=count(*) from table_GoodsClass a join Table_Goods b on a.GoodsClassID=b.GoodsClassID where GoodsClassName=@class
  return @x
end  

select GoodsName as 商品名,dbo.f_GoodsCount('服装') as 种类数 from Table_GoodsClass a join Table_Goods b on a.GoodsClassID=b.GoodsClassID where GoodsClassName='服装'    --调用用户自己定义的函数
2、内嵌表值函数

内嵌表值函数的返回值是一个表,该表的内容是一个查询语句的结果。

create function [拥有者.] 函数名
([@参数名 as 标量数据类型[=default]])
returns table
[as]
return [(]select 语句[)]

在内嵌表值函数中,通过单个select 语句定义返回的table值。内嵌函数没有相关联的返回变量,也没有函数体。

如:

create function f_GoodsInfo(@class char(10))
returns table
as
return (
  select GoodsName,SaleUnitPrice from Table_GoodsName a join Table_Goods b on a.GoodsClassID=b.GoodsClassID
  where GoodsClassName=@class
)
select * from dbo.f_GoodsInfo('服装')  --调用内嵌表值函数

3、多语句表值函数

如:

create function f_GoodsType(@class varchar(20))
returns @t_GoodsType table(
  商品名 varchar(50),
  单价 money,
  生产日期 datetime,
  类型 varchar(10)
)
as
begin
  insert into @t_GoodsType
  select GoodsName,SaleUnitPrice,ProductionDate,case
  when  datediff(month,ProductionDate,'2012/2/10')>12 then '旧商品'
  when  datediff(month,ProductionDate,'2012/2/10') between 6 and 12 then '一般商品'
  when  datediff(month,ProductionDate,'2012/2/10')<6 then '新商品'
  end
  from Table_GoodsClass a join Table_Goods b on a.GoodsClassID=b.GoodsClassID
  where GoodsClassName=@class
end
在定义函数时也可以调用已经定义好的函数。

select * from dbo.f_GoodsType('家用电器')


目录
相关文章
|
3月前
|
安全 程序员 数据处理
CreateFileMapping函数详解
CreateFileMapping函数详解
|
4月前
|
XML 存储 JavaScript
loadXMLString() 函数
`loadXMLString()` 是一个JavaScript函数,用于在不同浏览器环境下解析XML字符串。它使用DOMParser在支持的浏览器中解析,而在IE中则使用ActiveXObject。函数接受XML文本作为参数,返回解析后的XML文档。此函数适用于HTML页面的&lt;script&gt;标签内,方便在页面中重用,尤其在处理XML实例时。
|
4月前
|
Java 测试技术 Python
为什么要用函数
在编程中,函数是一种重要的抽象工具,它使我们能够组织和复用代码,提高代码的可读性、可维护性和效率。函数允许我们将一段代码块封装起来,给它一个名字,并通过参数和返回值来与外部世界交互。下面,我们将深入探讨为什么要使用函数,并附上相应的代码示例。
46 1
|
程序员 编译器 C语言
从零带你认识函数(一)
从零带你认识函数
73 1
|
数据库 索引
pginspect几个函数
pginspect几个函数
73 0
|
编译器 C语言
C 中的函数
C 中的函数
|
存储 编译器 C语言
C语言知识点之 函数
C语言知识点之 函数
45 0
|
算法 程序员 编译器
最简单的函数,看看就会了
最简单的函数,看看就会了