函数

简介: 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('家用电器')


目录
相关文章
|
4月前
写一个函数
【7月更文挑战第4天】写一个函数。
25 2
|
5月前
|
算法 Java 开发者
解密CollectGarbage函数
解密CollectGarbage函数
|
5月前
|
C++
<iomanip>库中setw(),setfill()等函数的使用
<iomanip>库中setw(),setfill()等函数的使用
94 0
|
6月前
|
Java 测试技术 Python
为什么要用函数
在编程中,函数是一种重要的抽象工具,它使我们能够组织和复用代码,提高代码的可读性、可维护性和效率。函数允许我们将一段代码块封装起来,给它一个名字,并通过参数和返回值来与外部世界交互。下面,我们将深入探讨为什么要使用函数,并附上相应的代码示例。
67 1
|
6月前
|
存储 编译器 Serverless
C++系列十:函数
C++系列十:函数
|
6月前
函数(二)
函数(二)
24 0
|
11月前
|
机器学习/深度学习
函数的使用
任务1 统计小组一门课程的总分及平均分。
57 1
|
程序员
函数
一、函数 函数是一段封装了特定功能的可重复使用的代码块。它接受输入参数,执行特定的操作,并返回一个结果。函数可以在程序中被多次调用,避免了重复编写相同的代码,提高了代码的复用性和可维护性。 函数通常具有以下几个特点: 1. 输入参数:函数可以接受零个或多个输入参数,用于传递数据给函数。输入参数可以是任意类型的数据,如整数、浮点数、字符串、数组等。函数可以使用输入参数来执行特定的操作。 2. 函数体:函数体是函数的核心部分,包含了函数要执行的操作。函数体是由一系列的语句组成的代码块,可以包含各种控制语句、变量声明、表达式等。函数体定义了函数的具体功能。 3. 返回值:函数可以返回一个结果给调用者
40 0
|
前端开发
纯函数
纯函数
76 0
javaSprict 03 函数的使用
本文将讲述javaSprict中函数的声明,调用方法
javaSprict 03 函数的使用