当前位置:   article > 正文

sql server表值函数与标量值函数实际应用_sql server function

sql server function

sql中的表值函数与标量值函数区别与用法
一 、表值函数又分为内联函数与多语句函数

(1)内联函数就是没有函数主体表是单个 SELECT。

下面是一个不带输入参数的表值函数

create function tvpoints()
returns table
as 
return
(
select * from tb_users
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

select * from tvpoints()这个结果返回的是一张表

eg:
数据源:
在这里插入图片描述

create function tvpoints()
returns table
as 
return
(
select * from dbo.[8号机时段工作时长_分钟奇ID] WHERE ID = 1
);

GO

create VIEW  [dbo].[temp003] 
as 
select * from tvpoints()
--select datediff(MI,'"@SQL1"','"@SQL2"') as daysum
GO
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述
(2)下面是带参的内联表值函数

对于多语句表值函数,在 BEGIN…END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。
以下示例创建了一个表值函数.

create function tvpoints()
returns @points table (x float, y float)
as begin
insert @points values(1,2);
insert @points values(3,4);
return;
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

select * from tvpoints2(x,y)查询到的是一张表

(3)标量函数(返回一个具体类型的值而不是一张表了)

CREATE FUNCTION FUN_DataFormat (@strDate datetime)  
RETURNS varchar(20)  AS  
BEGIN 
      declare @date varchar(20)
      set @date = DATENAME(YY,@strDate)+'年'+Convert(VARCHAR,MONTH(@strDate))+'月'+Convert(VARCHAR,DAY(@strDate))+'日'
      return @date
END
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以通过select dbo.FUN_DataFormat(getdate())来使用。(用的时候一定要在函数前面添加一个dbo或者的话数据库语句报错的会提示不认识的)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/738059
推荐阅读
相关标签
  

闽ICP备14008679号