SQLServer 表值函数与标量值函数 定义方式与调用区别

sqlserver 表值函数与标量值函数 定义方式与调用区别

sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型。

标量值函数创建: create function [dbo].[gooswidth]

(

    @goodscode varchar(20)

)

returns float

begin

       declare @value float

       select @value = goodswidth from master_goods where goodscode = @goodscode

       return(@value)

end

表值函数创建: create function [dbo].[getallgoods]
()
returns table
as
 return(select * from [master_goods])
创建一个自定义样式的标量函数: create function [dbo].[getmystyledate](@date datetime)
returns nvarchar(20)
begin
       declare @returnvalue nvarchar(20)
       set @returnvalue = '今天是' + convert(nvarchar(4),datepart(year,@date)) + '年'+ convert(nvarchar(2),datepart(month,@date)) + '月'+ convert(nvarchar(2),datepart(day,@date)) + '日'
       return @returnvalue
end
       其中标量值函数调用的时候方式如下:select dbo.gooswidth('0003') 注意:函数前边一定要加上所有者:dbo

       表值函数调用方法如下:select * from getallgoods() 表值函数调用的时候不用加入*/

时间: 2024-12-23 19:05:47

SQLServer 表值函数与标量值函数 定义方式与调用区别的相关文章

SQL表值函数和标量值函数的区别

原文:SQL表值函数和标量值函数的区别 写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型.举个例子,当用户删除一个节点的时候,是需要将当前节点下的所有子节点都删掉,如果程序只传一个当前节点,那就需要写一个函数来得到当前节点下的所有子节点,这些子节点的信息就可以放到一个表中返回. [sql] view plaincopy    

SQLserver标量值函数使用例子

举个例子,当用户删除一个节点的时候,是需要将当前节点下的所有子节点都删掉,如果程序只传一个当前节点,那就需要写一个函数来得到当前节点下的所有子节点,这些子节点的信息就可以放到一个表中返回.  代码如下 复制代码 ALTER FUNCTION testGetSubNodes ( -- Add the parameters for the function here @nodeId int ) RETURNS @t TABLE ( -- Add the column definitions for

sql server 标量值函数实例与不能调用原因分析

sql server 标量值函数实例与不能调用原因分析 --标量值函数 set ansi_nulls on go set quoted_identifier on go -- ============================================= -- author: <author,,name> -- create date: <create date, ,> -- description: <description, ,> -- ========

xcode-c语言关于结构体类型的函数的返回值return

问题描述 c语言关于结构体类型的函数的返回值return 定义了一个全局变量的结构体,然后又定义了一个结构体类型的函数,函数的返回值如何返回一个空值,显然return 0;是不行的 解决方案 1)可以用结构体指针,因为指针的null是一个典型的"空",相对于int的0更能体现"空值"的含义,也最方便 2)结构体属于你自己定义的变量,所以你也可以规定当这个结构体里面的变量的值是某种情况是,认为这个结构体类型的变量是"空",比如一般意义上的int认为

php函数的返回值

返回值 用户空间函数利用return关键字向它的调用空间回传信息, 这一点和C语言的语法相同. 例如: function sample_long() { return 42; } $bar = sample_long(); 当sample_long()被调用时, 返回42并设置到$bar变量中. 在C语言中的等价代码如下: int sample_long(void) { return 42; } void main(void) { int bar = sample_long(); } 当然, 在

c-指向函数的指针不需要定义?

问题描述 指向函数的指针不需要定义? 我看<C程序设计语言>书,看到103页时,有一个关于指向函数的指针把我看糊涂了.如图所示,函数指针就是里面那个comp.可我找了半天也找不到它在哪里定义的,那么当调用它时它是怎么转换的呢?比如那个?:返回的是numcmp,那么最后是怎么转到numcmp函数里面呢? 解决方案 题主弄混了一个关键的概念:指向函数指针的本质是什么,在这里也就是您所说的comp. 请注意,这里的comp其实是一个变量,一个指针变量.而不是楼主所认为的函数!它不需要包含任何代码,因

引用 返回值-引用值作为函数的返回值的困惑

问题描述 引用值作为函数的返回值的困惑 /////////////////////////////////////////////////////// double array[5] = {100.1, 100.2, 100.3, 100.4, 100.5}; double cd = 5.2; double &change(int i) { return array[i]; } void TestConstReturnVaulefun() { int i; cout<<"原始

类中const函数的返回值问题

问题描述 类中const函数的返回值问题 我写了一个matrix类,其中定义了一个二维指针int **p用来表示这个矩阵,现在我需要些一个下标操作符的重载,但是他会报错. const int *&matrix::operator const { return p[n]; } 这个函数返回一个一维指针引用.但是我不知道错在哪儿了. 但是如果把返回引用改成返回一维指针本身,也就是如下所示,就没问题了.为什么呢??哪个大神来解释下. const int *matrix::operator const

《扩展 jQuery》——第6章 函数插件6.1 定义插件

第6章 函数插件 本章涵盖以下内容: 定义一个函数插件: 通过函数插件本地化内容: 通过函数插件访问cookie. 前一章中介绍的集合插件用来操作在页面上通过选择或遍历得到的一组元素.但是开发者也可以创建一些不操作集合元素,而是在jQuery框架上提供一些工具函数的插件.这就是函数插件. 这种类型插件的例子包括Debug插件,用来记录一些调试信息:还包括Cookie插件,用来操作网站的cookie(将在6.2节中详述).与前面的插件一样,只有想不到,没有做不到. 因为函数插件不操作元素集合,也通