源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-03-14 01:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:SQL SERVER函数之深入表值函数的处理分析
有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等, [b]表值函数返回结果集可以简单向下面这么写: [/b]
[u]复制代码[/u] 代码如下:
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 )
[b]调用的时候就 SELECT XX FROM Fun_GetReprotNews('xx') [/b]如果函数中要定义变量,进行判断计算处理什么的,写法有点不一样了,要定义表变量才行,表值函数里是不允许创建临时表的,只能是表变量。 举个简单的写法样式,如下:
[u]复制代码[/u] 代码如下:
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
如果进行多表操作,可以在函数体内定义表变量来存放结果集再进行关联查询。 标量值函数也贴一个样子好了,老掉牙的了,呵呵~~
[u]复制代码[/u] 代码如下:
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,不然会被认为是系统内置函数,却因又不是系统内置函数而会报错。 [b]上面的可以这么测试 [/b]select dbo.FUN_DataFormat(getdate()) 就忽悠这些了~~~~~~~
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部