加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL SERVER函数之表值函数的处理

发布时间:2020-12-12 12:35:12 所属栏目:MsSql教程 来源:网络整理
导读:编程之家 jb51.cc 有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等,表值函数返回结果集可以简单向下面这么写: 以下为引用的内容: CREATE F
以下为引用的内容:
CREATE FUNCTION Fun_GetReportNews(@type varchar(10))
RETURNS TABLE
AS
RETURN
(
SELECT TPR_ID,TPR_Title,TPR_Date FROM TP_ReportNews WHERE TPR_Type = @type
)

  调用的时候就 SELECT XX FROM Fun_GetReprotNews('xx')

  如果函数中要定义变量,进行判断计算处理什么的,写法有点不一样了,要定义表变量才行,表值函数里是不允许创建临时表的,只能是表变量。

  举个简单的写法样式,如下:

以下为引用的内容:
CREATE FUNCTION FUN_GetInfoList(@type varchar(10))
RETURNS @Table TABLE(TPR_ID int,TPR_Title nvarchar(100),TPR_PubDate datetime)
AS
BEGIN
DECLARE @a varchar(10)
SELECT @a = xx FROM XX WHERE xx = @type
INSERT @Table SELECT XX,XX,XX FROM TableName WHERE XX = @a --表变量里定义的列数和取值列数要一致
RETURN
END


  如果进行多表操作,可以在函数体内定义表变量来存放结果集再进行关联查询。标量值函数也贴一个样子好了。

以下为引用的内容:
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


  访问标量值函数时一般在函数名前加dbo,不然会被认为是系统内置函数,却因又不是系统内置函数而会报错。上面的可以这么测试。

select dbo.FUN_DataFormat(getdate())

  转自:http://www.cnblogs.com/peaceli/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

  编程之家 52php.cn 有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等,表值函数返回结果集可以简单向下面这么写:

    推荐文章
      热点阅读