标量值函数定义 和 使用实例
2013-05-17 11:22
393 查看
CREATE FUNCTION 自定义函数名(
自定义参数
)
RETURNS 返回值类型
AS
BEGIN
--声明返回值
DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>
-- 通过查询给返回值赋值
SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>
-- return返回值
RETURN <@ResultVar, sysname, @Result>
END
***************************************实例***************************************
定义:
USE [MyTest]
GO
/****** Object: UserDefinedFunction [dbo].[FunGetMatByAtrID] Script Date: 01/09/2012 11:24:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: zyp
-- Create date: 2012-01-09
-- Description:
-- =============================================
ALTER FUNCTION [dbo].[FunGetMatByAtrID]
(
@atrid int
)
RETURNS nvarchar(500)
AS
BEGIN
declare @strTemp nvarchar(500)
declare @strReturn nvarchar(500)
--内部变量的定义之间是不需要逗号 或者 分号分隔的哦
--注意表的定义,要初始化这个表的字段。如果写成declare @temp table这是有问题的哦。
declare @temp table(rowid int,title nvarchar(100))
declare @i int
--注意:这里有几个初始值赋值:
--@i无可非议,要从第一个开始。
--@strTemp和@strReturn这两个参数,因为后边涉及到字符串的拼接,一定要赋初始值为'',否则最后怎么拼,都是NULL。
set @i = 1;
set @strTemp = '';
set @strReturn = '';
--这里也相当于是初始值赋值,不过是某个表的数据插入:
--在函数里,应该是不能用临时表的。所以这里借助了另外一个表值函数。
insert into @temp
select rowid,title from dbo.FunGetMaterialList(@atrid);
while(@i <= (select COUNT(1) from @temp))
begin
select @strTemp = title from @temp where rowid=@i;
set @strReturn = @strReturn + @strTemp + ',';
set @i = @i + 1;
end
set @strReturn = SUBSTRING(@strReturn,1,LEN(@strReturn)-1);
return @strReturn;
END
标量值函数的调用:
select dbo.[FunGetMatByAtrID](1)
自定义参数
)
RETURNS 返回值类型
AS
BEGIN
--声明返回值
DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>
-- 通过查询给返回值赋值
SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>
-- return返回值
RETURN <@ResultVar, sysname, @Result>
END
***************************************实例***************************************
定义:
USE [MyTest]
GO
/****** Object: UserDefinedFunction [dbo].[FunGetMatByAtrID] Script Date: 01/09/2012 11:24:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: zyp
-- Create date: 2012-01-09
-- Description:
-- =============================================
ALTER FUNCTION [dbo].[FunGetMatByAtrID]
(
@atrid int
)
RETURNS nvarchar(500)
AS
BEGIN
declare @strTemp nvarchar(500)
declare @strReturn nvarchar(500)
--内部变量的定义之间是不需要逗号 或者 分号分隔的哦
--注意表的定义,要初始化这个表的字段。如果写成declare @temp table这是有问题的哦。
declare @temp table(rowid int,title nvarchar(100))
declare @i int
--注意:这里有几个初始值赋值:
--@i无可非议,要从第一个开始。
--@strTemp和@strReturn这两个参数,因为后边涉及到字符串的拼接,一定要赋初始值为'',否则最后怎么拼,都是NULL。
set @i = 1;
set @strTemp = '';
set @strReturn = '';
--这里也相当于是初始值赋值,不过是某个表的数据插入:
--在函数里,应该是不能用临时表的。所以这里借助了另外一个表值函数。
insert into @temp
select rowid,title from dbo.FunGetMaterialList(@atrid);
while(@i <= (select COUNT(1) from @temp))
begin
select @strTemp = title from @temp where rowid=@i;
set @strReturn = @strReturn + @strTemp + ',';
set @i = @i + 1;
end
set @strReturn = SUBSTRING(@strReturn,1,LEN(@strReturn)-1);
return @strReturn;
END
标量值函数的调用:
select dbo.[FunGetMatByAtrID](1)
相关文章推荐
- SQLServer 标量值函数定义 和 使用实例
- [代码]如何使用用户定义的标量值函数(LINQ to SQL)
- JNI使用实例之C、C++ DLL回调java成员函数
- 转:php park、unpark、ord 函数使用方法(二进制流接口应用实例)
- OpenStack详细解读:定义,好处与使用实例
- linux系统ioctl函数使用实例
- C++中各种数据成员及成员函数的定义及使用
- PHP 函数dirname()使用实例
- VC调用matlab中定义的.m文件中的函数的实例
- static(c中定义的关键字1、被其修饰者 外部无法使用(相反的都可以使用extern在外部使用) 2、函数局部变量使用成为静态的放入静态池-生存期改变。c++进行了扩充,使它在类中有了特殊作用)
- PowerShell使用枚举变量定义带智能提示功能的函数参数
- SQL使用DOS命令建库。建表,添加约束,标量值函数,存储过程,触发器,游标
- 关于MySQL的存储函数(自定义函数)的定义和使用方法详解
- Python学习:def函数的定义、使用及参数传递
- c# 委托的定义及使用实例
- Python3.5基础——函数的定义与使用
- java中的函数定义及其使用
- 查找项目下的函数定义和使用
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用
- 以实例全面讲解PHP中多进程编程的相关函数的使用