zoukankan      html  css  js  c++  java
  • 标量值函数定义 和 使用实例

    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)

  • 相关阅读:
    强关联二维材料1T—TaS2晶体
    超薄二维Mo2C晶体
    稀有的二维狄拉克材料
    大自然中的几何植物
    字符串的内建函数
    python数据模型(特殊方法)
    插入排序
    下载谷歌浏览器(Chrome)扩展离线安装包crx文件最简单的方法
    33. 高精度练习之乘法
    32. 整数加法
  • 原文地址:https://www.cnblogs.com/mili3/p/3083332.html
Copyright © 2011-2022 走看看