主页 > 知识库 > SQL SERVER函数之深入表值函数的处理分析

SQL SERVER函数之深入表值函数的处理分析

热门标签:承德地图标注公司名需要花钱吗 北京400电话办理多少钱 浙江稳定外呼系统供应商 美团地图标注商户认证注册 电销外呼系统软件功能 咸阳电脑外呼系统运营商 榕城市地图标注 庆阳地图标注 怎么给高德做地图标注
有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等,
表值函数返回结果集可以简单向下面这么写:
复制代码 代码如下:

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())
就忽悠这些了~~~~~~~

标签:江苏 贵州 拉萨 上海 新乡 呼和浩特 重庆 昭通

巨人网络通讯声明:本文标题《SQL SERVER函数之深入表值函数的处理分析》,本文关键词  SQL,SERVER,函数,之,深入,表值,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《SQL SERVER函数之深入表值函数的处理分析》相关的同类信息!
  • 本页收集关于SQL SERVER函数之深入表值函数的处理分析的相关信息资讯供网民参考!
  • 推荐文章